87,720
社区成员




<script type="text/javascript">
var showNum = document.getElementById("num");
var btn = document.getElementById("btn");
function add(num){
this.num = num;
this.c();
}
add.prototype.c = function(){
this.update();
// this.upEvent();
}
add.prototype.update = function(){
this.plus();
this.upEvent();
}
add.prototype.plus = function(){
showNum.innerHTML = ++this.num;
}
add.prototype.upEvent = function(){
var that = this;
// $("#btn").on("click",function(){
// that.update();
// })
// btn.addEventListener("click",function(){
// that.update();
// })
btn.onclick = function(){
that.update();
}
}
var nadd = new add(0);
</script>
btn.addEventListener('click',function(){
console.log('这是第一次执行')
});
btn.addEventListener('click',function(){
console.log('这是第二次执行')
});
那么它都会执行,这属于DOM2规范,
而最原始的onclick属于DOM1规范,如果声明多次,只会被最后一个覆盖。
你的代码在初始化时就执行了this.c(),绑定了一次事件,在点击过程中又执行了一次update,相当于又绑定了一次,于是就翻倍了