爲什麼method1
在init中直接工作,但在keyevent觸發時不起作用。 在32,39 keyevent它不起作用,但在keyevent 37它的作品。所以,該功能應該工作。javascript類對象,keyevent中的方法不起作用
init
函數也有效,例如當我初始化method2
,而方法運行時method1
。這工作,但爲什麼當keyevent
它不起作用?
function myClass() {
this.method1 = function method1(word) {
alert(word)
}
this.method2 = function method2(word) {
this.method1(word);
}
this.shortcutKey = function shortcutKey() {
document.onkeydown = function (event) {
if (event.keyCode == 32 || event.keyCode == 39) {
this.method1("undirect");
} else if (event.keyCode == 37) {}
}
}
this.init = function init() {
this.method2("direct init");
this.shortcutKey();
}
this.init();
}
var object = new myClass();
'this'指的是「keydown」事件中的'document'。在設置'.onkeydown'之前,通過使用'var obj = this;'**之類的東西來存儲對'myClass'對象的引用。然後,在處理程序中,當您需要引用對象的方法時,請使用'obj.method1(「whatever」);' – Ian
我避免省略分號以防止意外的自動插入。 –