使用Getter应用传播操作员在对象上



如果您用Getter

声明类
class Person {
  constructor(firstName, lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
  }
  get fullName() {
    return [this.firstName, this.lastName].join(" ");
  }
}

实例化新对象后,您可以访问getter

const person = new Person("Jane", "Doe");
console.log(person.fullName); // "Jane Doe"

,但在使用差距

复制对象之后,这将无法使用
const personCopy = { ...person };
console.log(personCopy.fullName); // undefined

我认为这有点令人困惑。

仅传播算子

复制从提供的对象到新对象的枚举属性。

使用get语法定义的属性

将在对象的原型上定义。

传播操作员使用Object作为构造函数创建一个新对象。因此,就您而言,personCopy不是类Person的实例,因此,其__proto__不是Person.prototype,因此Getter无法正常工作。

相关内容

  • 没有找到相关文章

最新更新