javascript - 如何在这样的函数中操作变量?
问题描述
<!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)
所以我想问一下如何在这个演示中使计数加一?
解决方案
您需要增加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
按下 时,计数在同一个对象中递增,而不是在另一个新对象中递增。
推荐阅读
- python - 切换字母大小写
- php - 初始化空白数组(使用键)
- woocommerce - Paypal IPN 不适用于 woocommerce
- git - 为什么我会致命:身份验证失败
- javascript - react native类中的箭头函数和普通函数
- javascript - 反应谷歌地方自动完成反应
- c++ - 如何通过 C/C++ 代码在两点之间绘制一条可调曲线(x 轴整数,y 轴是浮点数)
- mongodb - 如何将 Collection.find() 转换为具有多个匹配值的 Collection.aggregate()?
- java - java.lang.NullPointerException 错误请
- javascript - Chrome 开发工具中未显示 OnBlur/onChange 属性