我可以创建一个可供对象的每个属性使用的方法吗?
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/