<!DOCTYPE html>
<html>
<body>
<button onclick='new a().add()'>add</button>
<script>
function a() {
this.count = 0;
this.add = function() {
count++;
}
}
</script>
</body>
</html>
在此演示中,我想单击添加按钮,然后将计数加一。但是,当我单击添加按钮时,出现错误
Uncaught ReferenceError: count is not defined
at add (test.html:9)
at HTMLButtonElement.onclick (test.html:4)
所以我想问一下这个演示中的计数加一吗?
答案 0 :(得分:3)
您需要增加this.count
而不是count
。 this.count
引用对象的属性(因为this
是对象的上下文),其中count
引用变量。
var obj = new a()
function a() {
this.count = 0;
this.add = function() {
this.count++;
console.log(this.count)
}
}
<button onclick='obj.add()'>add</button>
另外,请分别初始化对象,以便每当按下button
时,同一对象(而不是另一个对象)中的计数都会增加。
答案 1 :(得分:2)
每次单击都会创建一个新对象,在新对象上调用add方法,并增加新对象的数量
答案 2 :(得分:1)
<!DOCTYPE html>
<html>
<body>
<button onclick="new a().add()">add</button>
<script>
let count = (this.count = 0);
function a() {
this.add = function() {
count += 1;
console.log(count);
};
}
</script>
</body>
</html>
答案 3 :(得分:0)
您需要执行this.count++
,而不是count++
:
var myInstance = new a();
function a() {
this.count = 0;
this.add = function() {
this.count++;
console.log(this.count);
}
}
<button onclick='myInstance.add()'>add</button>