gpt4 book ai didi

javascript - 我可以创建一个可供所创建对象的每个属性使用的类方法吗?

转载 作者:行者123 更新时间:2023-11-28 11:03:52 24 4
gpt4 key购买 nike

我可以创建一个可供对象的每个属性使用的方法吗?

class myClass {
constructor() {
this.a = 1;
this.b = 2;
this.c = 3;
}
raise(x) {
this += x; //I know this doesn't work. I want the raise function to use
//the value of its caller and increase it by x
};
}

我想要实现的是能够通过

调用任何对象属性上的 raise 方法
obj1 = new myClass();

obj1.a.raise(1); //a = 2
obj1.b.raise(3); //b = 5
obj1.c.raise(100); //c = 103

所以我希望能够使用以下语法:object.property.method()

我尝试在类构造函数、类原型(prototype)或对象原型(prototype)上创建 raise。我在其他地方也找不到任何提及这一点的信息。

最佳答案

obj.a 不可能返回一个数字,同时又能够调用 obj.a.raise 来修改它。

如果您愿意进行一些小调整,您可以通过类似于 .get 的方法检索该值,而基础值将存储在 _a属性:

class myClass {
constructor() {
this._a = 1;
this.a = { raise: num => this._a += num, get: () => this._a };
}
}
const obj = new myClass();

obj.a.raise(1); //a = 2
console.log(obj.a.get());

关于javascript - 我可以创建一个可供所创建对象的每个属性使用的类方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60938600/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com