我有这个方法:
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();
}
这可能吗?
由于
答案 0 :(得分:3)
是的,但你必须创建一个函数来调用函数,即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");
答案 1 :(得分:0)
是的,这可以在JavaScript中使用。
someFunction(function () {
myFunction(a,b,c);
}, true, "test");
你甚至可以这样做:
var myFunc = function () {
myFunction(a,b,c);
};
someFunction(myFunc, true, "test");