访问和更改类javascript中的数组值

时间:2019-03-17 16:15:27

标签: javascript ecmascript-6

我有这个简单的代码:

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。谢谢

1 个答案:

答案 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)