Почему мой метод получения / установки javascript требует подчеркивания?

Tyler Travis спросил: 13 октября 2017 в 07:47 в: javascript

При выполнении операции [[Get]] или [[Put]] над a выдается ошибка RangeError, в которой Maximum call stack size exceeded указывает на this.a в получателе и = в установщике.

let someObject = {
  get a() {
    return this.a;
  },
  set a(val) {
    this.a = val;
  }
}someObject.a;  // Error
someObject.a = 5;  // Error

Если свойства внутри метода получения и установки подчеркнуты, они работают, однако:

let someObject = {
  get a() {
    return this._a_;
  },
  set a(val) {
    this._a_ = val;
  }
}

Я проверил это как в среде узлов, так и в движке v10 в Chrome, и произошло то же самое.

Такая путаница. Отправить справку.

0 ответов