Skip to content Skip to sidebar Skip to footer

Is It Possible To Call A Super Setter In Es6 Inherited Classes?

I'm wondering if the following is in compliance with the ES6 spec: class X { constructor(name) { this._name = name; } get name() { return this._name; } set name

Solution 1:

class Y extends X {
  constructor(name) {
    super(name);
  }

  set name(name) {
    super.name = name;
    this._name += "Y";
  }
}

will override the name properly with an accessor for just the setter, with no getter. That means your y.name === "hiXY" will fail because y.name will return undefined because there is no getter for name. You need:

class Y extends X {
  constructor(name) {
    super(name);
  }

  get name(){
    return super.name;
  }

  set name(name) {
    super.name = name;
    this._name += "Y";
  }
}

Post a Comment for "Is It Possible To Call A Super Setter In Es6 Inherited Classes?"