我需要在Javascript中存储一个作为我的“命名”函数的参数传递的匿名函数,然后再调用它。
我该怎么做?我已经知道如何将匿名函数作为参数传递,但是当我在代码的“另一端”时,我不知道如何处理它。
谢谢
答案 0 :(得分:5)
Functions in JavaScript是first-class members,这意味着您可以像处理语言中的任何其他数据类型一样使用它们 - 您可以将它们作为参数传递,将它们作为成员变量保存在其他函数中,从函数等返回它们。
在您询问过的情况下,它就像任何其他命名变量一样,可以调用以下函数,因为它是函数:
function myFunc(anonymous){
var arg1;
anonymous(arg1);
}
myFunc(function(arg1){console.log(arg1)});
答案 1 :(得分:1)
只需使用参数名称调用它。
function callThisLater(laterFunction) {
// ...
laterFunction(args);
}
callThisLater(function (arg1) {
alert("We've been called!");
});
答案 2 :(得分:1)
这是基本的例子:
function Foo(func) {
this.Func = func;
this.Activate = function() {
this.Func();
};
}
var foo = new Foo(function() { alert("activated"); });
foo.Activate();
我相信您错过的是使用()
来“激活”该功能 - 据我所知,您已将功能“存储”到变量。
答案 3 :(得分:0)
是否可以将作为参数传递的匿名函数分配给命名函数中的全局变量,然后将全局变量用作对匿名函数的引用。