class AbstractClass {
constructor() {
}
set property(value) {
this.property_ = value;
}
get property() {
return this.property_;
}
}
class Subclass extends AbstractClass {
constructor() {
super();
}
set property(value) {
super.property = value;
if (!(this.property_ instanceof SubclassAssociatedClass)) throw new TypeError();
}
//get property() {
// return super.property;
//}
}
Przestawianie metody atrybutu set
i wydaje się, że metoda get
muszą być zastąpione także inaczej undefined
jest zwracane (metoda get
nie jest dziedziczona odkomentowując podklasa get property()
powyższa metoda i wszystko działa poprawnie).przesłonięcia ustawiającej i getter musi być zmienione
Zakładam, że jest to część specyfikacji. Podejście to nastąpiłoby, gdyby zachowanie było konsekwencją kompilacji krzyżowej. Aby upewnić się, czy jest to właściwy sposób kodowania zmienionych setterów i modułów pobierających (zarówno w tym samym czasie, jak iw ogóle)?
Czy możesz edytować swój przykład, aby setter/getter nie tylko dzwonił super? – Bergi
Może to być pomocne: http://stackoverflow.com/questions/27400010/object-prototype-definegetter-and-definesetter-polyfill/27400162#27400162. Omawia problem w kategoriach '__defineGetter__' itp., Ale zasada jest taka sama: jeśli definiujesz/definiujesz setter na właściwości, która już posiada element pobierający, musisz pobrać getter i zresetować go wraz z ustawianiem . –