我似乎无法回到正轨。我只是将一个函数放在一个变量中,并希望稍后调用它,为它提供一个参数:
var logic = function(itemId) {
console.log(itemId);
};
jQuery("#flipright").click(function() { logic.apply(1); } );
这打印“未完成”。
我错过了什么?
答案 0 :(得分:4)
只需致电logic(1)
如果您想传递上下文,可以使用call
或apply
:
logic.apply(context, [1]);
// or
logic.call(context, 1);
如果要将上下文传递给另一个函数,则应使用apply
或call
- 这意味着被调用函数中的this
关键字将引用您传递给的任何上下文它。
这是一个场景:
var logic = function(itemId) {
console.log(this,itemId);
};
jQuery("#flipright").click(function() {
// output to console the current jquery object and "1"
logic.call(this,1);
});
答案 1 :(得分:1)
成功:
jQuery("#flipright").click(function() { logic(1); } );
参考apply
:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply