Есть ли способ в Javascript определить функцию и немедленно вызвать ее таким образом, чтобы ее можно было использовать повторно?
Я знаю, что вы можете выполнять одноразовые анонимные функции:
(function(i) {
var product = i * i;
console.log(product);
// Can't recurse here because there's 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()
, а также позже, когда ситуация изменится и т. д.