在 javascript 中,如何让类通过引用获取对象的属性?

In javascript, how do I make a class take an object's properties by reference?

提问人:Alex Mortez 提问时间:11/10/2022 更新时间:11/10/2022 访问量:19

问:

我不想使用关键字,因为我正在制作浏览器扩展,并且我只能访问实例,而不能访问类定义。所以我想知道是否有可能通过引用将实例的道具分配给我的类实例。下面是一个简短的例子来说明我的意思。extends

https://jsfiddle.net/aL3n2fek/

我不想做,因为那样我就不得不做this.obj = objc.obj.speed

const obj = {
    speed: 105
}

class Car {
    constructor(obj){
    Object.assign(this, obj)
  }
}

const c = new Car(obj);


console.log(c.speed) // logs out 105

obj.speed = 120

console.log(c.speed) // logs out 105 when I want it to log out 120
JavaScript 对象 OOP 引用 传递

评论


答:

1赞 Matt Ellen 11/10/2022 #1

您可以使用 getter 和 setter

const obj = {
    speed: 105
};

class Car 
{
  #obj
  constructor(obj)
  {
    this.#obj = obj;
  }
  
  get speed()
  {
    return this.#obj.speed;
  }
  
  set speed(value)
  {
    this.#obj.speed = value;
  }

}

const c = new Car(obj);


console.log(c.speed) // logs out 105

obj.speed = 120

console.log(c.speed)