我似乎无法回到正轨。我只是把一个函数的变量,并且希望以后调用它,为它提供一个参数:函数在一个变量中,传递一个参数
var logic = function(itemId) {
console.log(itemId);
};
jQuery("#flipright").click(function() { logic.apply(1); });
这版画“undefinded”。
我错过了什么?
我似乎无法回到正轨。我只是把一个函数的变量,并且希望以后调用它,为它提供一个参数:函数在一个变量中,传递一个参数
var logic = function(itemId) {
console.log(itemId);
};
jQuery("#flipright").click(function() { logic.apply(1); });
这版画“undefinded”。
我错过了什么?
直接让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);
});
让它:
jQuery("#flipright").click(function() { logic(1); });
裁判为apply
:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply
啊好:)谢谢你的链接! – Jem 2012-03-29 08:15:15
啊,对:-)谢谢! – Jem 2012-03-29 08:14:54