首页 > 解决方案 > 如何在这样的函数中操作变量?

问题描述

<!DOCTYPE html>
<html>
<body>
<button onclick='new a().add()'>add</button>
<script>
function a() {
	this.count = 0;
	this.add = function() {
		count++;
	}
}
</script>
</body>
</html>

在这个演示中,我想点击添加按钮,然后让 count 加一。但是当我点击添加按钮时,我得到了错误

Uncaught ReferenceError: count is not defined
    at add (test.html:9)
    at HTMLButtonElement.onclick (test.html:4)

所以我想问一下如何在这个演示中使计数加一?

标签: javascript

解决方案


您需要增加this.count而不是count. this.count指的是对象的属性(因为this是对象的上下文) wherecount指的是一个变量。

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按下 时,计数在同一个对象中递增,而不是在另一个新对象中递增。


推荐阅读