Есть ли способ в Javascript, чтобы определить функцию и сразу вызвать ее, таким образом, чтобы ее можно было повторно использовать?
Я знаю, что вы можете делать одноразовые анонимные функции:
(function(i) {
var product = i * i;
console.log(product);
// Can't recurse here because there no (ECMA standard) way for the
// function to refer to itself
}(2)); // logs 4
Или вы можете назвать функцию, а затем вызвать ее:
function powers(i) {
var product = i * i;
console.log(i * i);
if (product < 1e6) { powers(product) };
}
powers(2); // Logs 4, 16, 256...
Но есть ли более простой способ определения и вызова функции за один раз? Как подобный гибрид обоих примеров?
Невозможность сделать это не мешает мне что-либо делать, но похоже, что было бы красивым выразительным способом записи рекурсивных функций или функций, которые должны выполняться на $(document).ready()
, но также и позже, когда ситуация меняется, и т.д.