Как сделать аргумент конструктора приватным? - PullRequest
0 голосов
/ 09 мая 2020

Интересно, можно ли сделать аргумент, передаваемый в конструктор ниже, приватным? Я пробовал обернуть функцию, но безуспешно ... Но в основном я не мог изменить значение test.one после того, как значение уже установлено.

class Test {
  constructor(one){
    this.one = one;
  }

  log(){
    console.log(this.one);
  }
}

const test = new Test(1);

test.log();

1 Ответ

3 голосов
/ 09 мая 2020

Вы можете использовать поля частного экземпляра, используя # имена (ha sh имена). В вашем случае это будет следующее:

class Test {
  #one

  constructor(one){
    this.#one = one;
  }

  log(){
    console.log(this.#one);
  }
}

const test = new Test(1);

test.log();
console.log(test.#one) // syntax error

Хорошая ссылка: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Class_fields#Private_instance_fields

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...