我不知道到底如何短語我的問題,所以讓我來舉一個例子:如何在初始化函數中將原型函數添加到事件偵聽器?
function foo() {
window.addEventListener("keydown", function(event) {
bar(event.keycode);
}
foo.prototype.bar = function (keycode) {
//code
}
我使用嘗試過,但導致使用window
爲this
。有沒有辦法做到這一點,或者我將不得不手動調用另一個初始化方法?
爲什麼綁定? 'window.addEventListener(「keydown」,this.bar,false);'? – 2012-07-06 14:37:14
@SheikhHeera,這樣'''在'this'的上下文中被調用,否則它將在全局範圍內執行,並且不會是綁定原型函數的優勢。 – zzzzBov 2012-07-06 14:38:21
@SheikhHeera無論綁定函數如何被調用,''bind''都將這個值固定爲始終相同。在這種情況下,它將始終是'foo'對象。 – Esailija 2012-07-06 14:39:25