kissarat
@kissarat
Node.js

Как правильно обратиться к сеттеру родительского класса в дочернем в JavaScript?

Если в прототипе родительского класса я декларирую свойство, способом:
Foo.prototype = {
    get target() {
        return this._target;
    },

    set target(value) {
        this._target = value;
    }
}

Каким образом в дочернем классе мне вызвать родительский сеттер?
Единственный способ который я вижу - через вызов getOwnPropertyDescriptor. Если уж так, то есть ли этот способ затратный с точки зрения производительности, т.е. getOwnPropertyDescriptor. каждый раз объект дескриптора и чего это стоит?
  • Вопрос задан
  • 2336 просмотров
Пригласить эксперта
Ответы на вопрос 1
Да, единственный. Да, затратный. Не нравится - закэшируйте родительский дескриптор.

var P = {
  set a(it){
    console.log('P');
  }
}
var C = {
  __proto__: P,
  set a(it){
    a.set.call(this, it);
    console.log('C');
  }
}
var a = Object.getOwnPropertyDescriptor(P, 'a');
C.a = 42;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы