繁体   English   中英

如何用参数调用回调函数?

[英]How to call callback function with parameters?

我有一个功能:

function func1(callback){
   var num = 11111;
   callback.call(num);
}

现在我称之为:

 func1(function(num){
    console.log("num= " + num);
 });

但我得到的num是未定义的。
什么可能是错的?

因为当你使用call来调用回调函数时, num被设置为隐含this在函数被调用,切换到:

callback(num);

而不是callback.call(num);

来自MDN文档

这个值为乐趣召唤提供了。 请注意,这可能不是方法看到的实际值:如果方法是非严格模式代码中的函数,则null和undefined将替换为全局对象,并且原始值将被加框。

Function.call()将调用具有传递引用范围的函数,您只需要调用它不具有任何特定范围

function func1(callback){
   var num = 11111;
   callback(num);
}

或者如果你想在任何范围内调用,第一个参数总是引用,所以在那之后传递你的参数,例如:

callabck.call(reference, param1, param2); 
callback.apply(reference, [param1, param2]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM