Javascript Can';t指定超类中只有getter的属性

Javascript Can';t指定超类中只有getter的属性,javascript,inheritance,overriding,getter,defineproperty,Javascript,Inheritance,Overriding,Getter,Defineproperty,今天,我惊奇地发现以下代码错误: class Base { get foo() { return 42 } } class Derived extends Base { constructor() { super() console.log(this, Object.getOwnPropertyDescriptor(this, 'foo')) this.foo = 52 } } new Derived() 以下是输出: Derived {} undefi

今天,我惊奇地发现以下代码错误:

class Base {
  get foo() { return 42 }
}

class Derived extends Base {
  constructor() {
    super()
    console.log(this, Object.getOwnPropertyDescriptor(this, 'foo'))
    this.foo = 52
  }
}

new Derived()
以下是输出:

Derived {} undefined
/Users/andy/clarity/src/server/temp.js:14
    this.foo = 52;
             ^

TypeError: Cannot set property foo of #<Base> which has only a getter
    at new Derived (/Users/andy/clarity/src/server/temp.js:11:5)
很明显,在一次房地产转让中发生的事情比我想象的要多得多。 我想人们认为我应该阅读说明书是对的
const base = {
  get foo() {return 42}
}

const derived = Object.create(base)
derived.foo = 58

console.log(derived.foo) // outputs 42???