【问题标题】:Function in a variable, passing a parameter变量中的函数,传递参数
【发布时间】:2012-04-12 20:50:23
【问题描述】:
我似乎无法重回正轨。我只是将一个函数放在一个变量中,然后想稍后调用它,并为其提供一个参数:
var logic = function(itemId) {
console.log(itemId);
};
jQuery("#flipright").click(function() { logic.apply(1); } );
这会打印“未定义”。
我错过了什么?
【问题讨论】:
标签:
javascript
function
variables
parameter-passing
【解决方案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);
});