我有这个简单的代码:
var num = [12,13]
class Test {
constructor(num){
this.num = num
}
change() {
this.num[1] = 5
}
}
test = new Test(5)
test.change()
alert(test.num[0] + ' x ' + num)
我正在尝试通过this.num
方法更改change
的值。但是,出现以下错误:
未捕获的TypeError:无法在数字“ 5”上创建属性“ 1”
有人可以在这里解释我做错了什么吗? 如果有帮助,请使用fiddle。谢谢
答案 0 :(得分:1)
您正在将num = 5
传递到constructor
。并且this.num
将是5
。构造函数中的num
在全局范围内未引用num
。相反,它创建一个私有变量num
,该变量作为5
您应将num
传递给contructor()
var num = [12,13]
class Test {
constructor(num){
this.num = num
}
change() {
this.num[1] = 5
}
}
test = new Test(num)
test.change()
alert(test.num[0] + ' x ' + num)