问题:如何访问shortcut
或action
或其他局部变量的javascript:通过局部变量的匿名函数
相关:类似的问题,但没有成功:
- Passing local variable to loader anonymous handler function
- how to pass local variables when assigning mouseover via anonymous function?
- javascript anonymous function parameter passing
- How to pass variable to anonymous function
Java解决方案: 设置final
改性剂,在匿名函数需要
目标源代码变量:
//plugin.buttons is collection of button objects
for (var i in plugin.buttons) {
var button = plugin.buttons[i];
var icon = button.icon;
var text = button.text;
var shortcut = button.shortcut;
var action = button.action; //action is a function (or method)
if (shortcut != null && shortcut.length > 0) {
if ($.isFunction(action)) {
console.log(shortcut); //it's valid shortcut
//using jQuery hotkey plugin
$('div[contenteditable]').bind('keydown', shortcut, function() {
console.log(shortcut); //it's undefined
action.call(); //it's undefined also
return false;
});
}
}
}
如图所示,因为JS可以通过关闭...编辑到达那些瓦尔它应该只是工作:哎呦,在功能包住for循环,这是书中缺乏循环范围的最古老的主要解决方法。 – dandavis