Я экспериментирую с новым шаблоном,
, где каждый вновь созданный элемент Card
использует область действия constructor
для хранения (частных) переменных:
псевдокод:
class CardtsCard extends HTMLElement {
constructor(){
let private = 666;
Object.assign(this,{
getPrivate : () => console.log(private)
});
}
get private(){
//can not access scope in constructor
return 42;
}
}
Итак:
el.getPrivate(); // outputs 666
el.private; // outputs 42
У меня есть множество геттеров и сеттеров
и я прикрепляю данные на мои элементы с помощью
this.whatever=value
кажется немного странным.
Я могу расширить его до:
class CardtsCard extends HTMLElement {
constructor(){
let private = new Map();
Object.assign(this,{
setPrivate : (data,value) => private.set(data,value),
getPrivate : (data) => private.get(data)
});
}
}
Вопрос: Я не эксперт в области JS, есть ли недостатки?