Учитывая класс ES6 следующим образом, каков наилучший способ сохранить ссылку на данные, переданные в конструктор, чтобы они были доступны из методов экземпляра?Как мне сохранить ссылку на объект «options» в экземпляре ES6?
Лучшее, что я нашел до сих пор, - это вручную добавить ссылку на каждый экземпляр некоторого свойства экземпляра внутри конструктора. Есть ли более чистый/более простой способ?
class Test {
constructor({
option1 = 1,
option2 = 2
} = {}) {
// What's the best way to keep a reference to
// the options on the instance?
this.options = {
option1,
option2
};
}
addOptions() {
return this.options.option1 + this.options.option2;
}
}
let t = new Test({
option1: 5
});
console.log(t.addOptions()); // 7
Вот ссылка на above code работает через 6to5.
* «ES6 не позволяет свойства экземпляра» *? Что такое 'this.options'? –
@FelixKling Ahh, я должен был быть немного яснее; ES6 не позволяет объявлять свойства прототипа в объявлении класса: http://wiki.ecmascript.org/doku.php?id=strawman:maximally_minimal_classes –
@AndrewOdri - Спасибо, есть несколько хороших идей здесь и внутри этого tungstenjs repo you связанный с. Как вы уже упоминали, это несколько раздражает то, что синтаксис объявления нового класса не позволяет использовать методы экземпляра. Я никогда не был уверен, почему, но, видимо, это было [явно принято решение] (https://stackoverflow.com/questions/22528967/es6-class-variable-alternatives). –