我需要存储一个匿名函数作为我的“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