据John Resig的《学习高级JavaScript》(http://ejohn.org/apps/learn/#83)所述,绑定对象的方法到事件处理程序时如果没有传递原始对象作为上下文是不正确的,但我发现该示例有缺陷。它声称clicked属性是意外设置的。以下是一个反例。
var Button = {
click: function(){
this.clicked = true;
console.log( elem.clicked );
}
};
var elem = document.createElement("li");
elem.innerHTML = "Click me!";
elem.onclick = Button.click;
document.children[0].appendChild(elem);
console.log( !elem.clicked );
不做这件事肯定还有其他原因。是什么呢?
<li>
元素的“clicked”属性。 - Pointy