这是代码:
Javascript部分:
ContatoreCostr = function(nome){
this.nome = nome;
this.cont = 0;
this.inc = function() {
alert(this + "--" + this.nome + "--" + this.cont++);
};
}
var ccc= new ContatoreCostr("zio");
window.onload = function() {
//document.getElementById("bid").onclick = ccc.inc; // DO NOT WORK
document.getElementById("bid").onclick = function(){ccc.inc()}; //WORKS
}
HTML部分:
<button onClick="ccc.inc()">Buttton1</button>
<button id="bid">Bottone2</button>
以下两种不同的方法可以在同一个对象中调用相同的方法,无论点击什么按钮,都会继续增加“cont”属性。上下文更改:单击Button1时为窗口,按下Button2时为tagButton,但没关系。 我不明白为什么我被迫分配onclick到function(){ccc.inc()}而不是ccc.inc。在我看来应该没有区别。 TNX
答案 0 :(得分:0)
缺少第一种方法? 它应该是
document.getElementById("bid").onclick = ccc.inc();
答案 1 :(得分:0)
“this”仅在函数被“实例”直接调用时才有效,就像在ccc.inc()中一样。当作为引用传递时,“this”指的是调用上下文,在本例中是可点击元素。