我似乎无法回到正轨。我只是将一个函数放入一个变量中,并希望稍后调用它,并为其提供参数:
var logic = function(itemId) {
console.log(itemId);
};
jQuery("#flipright").click(function() { logic.apply(1); } );
这会打印“未定义”。
我错过了什么?
最佳答案
只需调用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);
});
关于javascript - 函数在变量中,传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9921454/