Как использовать значение переменной для установки свойства класса в ES2015?Установка `this. [Variable value]` в ES2015
Рассмотрим этот код:
class Test {
constructor() {
this.name = "";
this.url = "";
}
//Set the options for class
setOptions(options) {
for (option in options) {
this.option = options[option]; //Option 1
this[option] = options[option]; //Option 2
}
}
}
const test = new Test();
test.setOptions({name: 'Test', url: 'www.stackoverflow.com'});
Я знаю, что вариант 1 не должен работать, но, видя, как если бы Вариант 2 также не работает, я не знаю, как я должен задавать атрибуты класса программно.
Чтобы это было абсолютно ясно, я хочу установить «имя» и «url» в классе, а не свойство, называемое опцией.
Как только вы исправите объявление переменной 'option', оно работает отлично. https://jsfiddle.net/popyL5dq/ Почему вы думаете, что это не работает? Какой результат вы получаете? –
* Не работает * Не работает как? Посмотрите на консоль. Вероятно, вы увидите «ReferenceError» в переменной «option». Это должно дать вам все ключи, необходимые для отслеживания ошибки. –
Это не имеет никакого отношения к ES2015. Это основное JS. –