Доступ и изменение значений массива внутри класса JavaScript - PullRequest
0 голосов
/ 17 марта 2019

У меня есть простой код:

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.Однако я получаю следующую ошибку:

Uncaught TypeError: Невозможно создать свойство '1' для числа '5'

Может кто-нибудь объяснить, пожалуйста, что я делаю здесь неправильно?Вот скрипка , если это поможет.Спасибо

1 Ответ

1 голос
/ 17 марта 2019

Вы передаете num = 5 на constructorthis.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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...