我有这个方法:
myFunction: function(a,b,c) {
...
}
现在,我想将其作为参数传递给另一个方法,以便可以在该方法内执行它:
...
var a = "bla";
var b = "ble";
var c = "bli";
someFunction(myFunction(a,b,c),true,"test");
然后在 someFunction 中我想调用 myFunction,如下所示:
someFunction: function(func,bool,str){
func();
}
这可能吗?
谢谢
最佳答案
是的,但是您必须创建一个进行函数调用的函数,即 bind (又名“curry”)带有参数的函数引用:
someFunction(myFunction.bind(this, a, b, c), true, "test");
一些较旧的浏览器(例如 IE 8)不支持 bind
方法,但您可以使用函数表达式执行基本相同的操作:
someFunction(function() { myFunction(a, b, c); }, true, "test");
如果您使用 jQuery,则有 $.proxy
method它负责使其独立于浏览器:
someFunction($.proxy(myFunction, this, a, b, c), true, "test");
关于javascript - JS - 如何将函数作为参数(带参数)传递而不调用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32589597/