Почему происходит вызов функции
Объясните как работает вызов вложенной функции тут:
function f() { return function g() { alert("sdf"); }; } var g = f(); g(); Как бы я логически мыслил: Есть функция f(){ } , есть кнопочка "пуск" - f(); . Если я создам коробочку - var g и положу туда эту кнопочку, то две там кнопочки не станет :) Почему происходит вызов вложенной функции? или тут: function getFunc() { var func = function() { alert("dsf"); }; return func; } getFunc()(); // А если бы у меня было 2 вложенные функции? Вызов getFunc()(); непонятен. Почему он вызывает вложенную функцию. А если бы их было 2, 3 и более? |
Не понял, а какого поведения вы ожидаете?
Цитата:
function Rec(){ return Rec } Rec.toString = function(){return '[function Rec]'} alert( Rec()()()()()()()()()()()()()()()()()()()()()()()() ) =) |
dmitry111, функция f() возвращает другую функцию. Т.о.
var g = f(); превращает g в функцию. Далее идет ее вызов... g() |
Сработает и так...
function f() { return function () { alert("sdf"); }; } var g = f(); g(); |
dmitry111, что есть для тебя вообще "вложеная функция"? :)
|
Aetae,
Имел в виду это: function getFunc() { var func = function() { alert("1"); }; var func2 = function() { alert("2"); }; var func3 = function() { alert("3"); }; } getFunc()/*вызов getFunc*/()/*вызов func*/()/*вызов func2*/()/*вызов func3*/; Это не работает, знаю) Но хотелось бы понять логику выполнения скрипта интерпретатором |
Цитата:
function f() { return function g() { alert("sdf"); }; } var g = f(); g(); Тут происходит только вызов вложенной функции? Так? |
Цитата:
function f() { return function g() { alert("sdf"); }; } var g = f(); g(); в данном примере возвращаемый объект? Нет? |
Цитата:
|
Цитата:
Там делается то, что я написал выше. 1. переменной присвойвается некое значение, которое возвращает функция f()... Только значением является так же функция... 2. Потом эта функция вызывается... Цитата:
Для меня тут есть функция, которая возвращает результат в виде другой функции и не более того... :) |
Часовой пояс GMT +3, время: 13:55. |