我需要存儲一個匿名函數作爲我的「named」函數的參數傳遞給Javascript,然後再調用它。如何處理javascript函數中的匿名函數?
我該怎麼做?我已經知道如何傳遞一個匿名函數作爲參數,但是當我處於代碼的另一端時,我不知道如何處理它。
謝謝
我需要存儲一個匿名函數作爲我的「named」函數的參數傳遞給Javascript,然後再調用它。如何處理javascript函數中的匿名函數?
我該怎麼做?我已經知道如何傳遞一個匿名函數作爲參數,但是當我處於代碼的另一端時,我不知道如何處理它。
謝謝
Functions in JavaScript是first-class members這意味着你可以和他們一起工作,就像你在語言的任何其他數據類型 - 你可以把它們作爲參數傳遞,讓他們作爲成員變量的其他函數中,從功能等
在這種情況下你問回報他們,它的工作原理就像用整齊的增加,你可以調用下面的功能,因爲它是功能的任何其他命名變量:
function myFunc(anonymous){
var arg1;
anonymous(arg1);
}
myFunc(function(arg1){console.log(arg1)});
你能分配你的匿名函數作爲一個參數傳遞給一個命名函數嗎?這個命名函數中的全局變量,然後可以使用全局變量作爲匿名函數的引用。
因此,你不*在談論**全局**變量,因爲它是一個變量*裏面的函數。這應該可以編輯,所以不會讓人困惑。 – 2011-03-24 12:04:47
只需使用參數的名稱調用它。
function callThisLater(laterFunction) {
// ...
laterFunction(args);
}
callThisLater(function (arg1) {
alert("We've been called!");
});
下面是簡單的例子:
function Foo(func) {
this.Func = func;
this.Activate = function() {
this.Func();
};
}
var foo = new Foo(function() { alert("activated"); });
foo.Activate();
我相信你錯過使用()
「激活」的功能是什麼 - 因爲據我所知,你達到「存儲」的點函數變量。
有趣的現場測試案例:http://jsfiddle.net/yahavbr/sHDgk/ – 2011-03-24 11:53:53
只是將它存儲在與功能/上下文相關的任何地方。像'function xxx(f){this.handler = f; }'//將其改爲其他對象,自己,不管。以後你可以直接調用它''this.handler()' – bestsss 2011-03-24 11:51:49