我打开了有关 Function.prototype.bind 的 MDN 文档,但我的脚本仍然无法正常工作。
我想要this
引用添加到 addEventListener 的 htmlElement。问题是,为什么我this
指的是对象窗口。
这是没有绑定的脚本(http://jsbin.com/ejimor/1/edit):
var handle1 = document.getElementById('handle1'),
handle2 = document.getElementById('handle2');
function doLogin() {
alert(this);
}
function enterForm(ev) {
if ( ev.which === 13 ) {
doLogin();
}
}
handle1.addEventListener('click', doLogin, false);
// this alert: [object HTMLButtonElement] this is what i want
handle2.addEventListener('keyup', enterForm, false);
// this alert: [object Window] this is what i do not want
那么,如何解决这个问题呢?