是否可以引用 "setter" 的 setter 函数?
Is it possible to get a reference to the setter function of a "setter"?
例如,在这段代码中
var o = {
set a(value) {this.b = value},
get a() {return this.b}
}
是否可以为 o.a
获取对 setter 函数的引用,以便如果将引用分配给 f
那么我可以 f.call(other, value)
使用它在另一个物体上?
尝试Object.getOwnPropertyDescriptor。它将 return 一个具有 getter 和 setter 方法的对象。
鉴于您的示例对象:
var o = {
set a(value) {this.b = value},
get a() {return this.b}
}
您可以这样使用 Object.getOwnPropertyDescriptor:
var setter = Object.getOwnPropertyDescriptor(o, "a").set;
var getter = Object.getOwnPropertyDescriptor(o, "a").get;
var other = {};
setter.call(other, 123);
最后一条语句将对象 "other" 的值设置为 123。它不影响对象 "o".
上的值
您还可以使用 getter.
从其他人那里获取价值
var result = getter.call(other);
例如,在这段代码中
var o = {
set a(value) {this.b = value},
get a() {return this.b}
}
是否可以为 o.a
获取对 setter 函数的引用,以便如果将引用分配给 f
那么我可以 f.call(other, value)
使用它在另一个物体上?
尝试Object.getOwnPropertyDescriptor。它将 return 一个具有 getter 和 setter 方法的对象。
鉴于您的示例对象:
var o = {
set a(value) {this.b = value},
get a() {return this.b}
}
您可以这样使用 Object.getOwnPropertyDescriptor:
var setter = Object.getOwnPropertyDescriptor(o, "a").set;
var getter = Object.getOwnPropertyDescriptor(o, "a").get;
var other = {};
setter.call(other, 123);
最后一条语句将对象 "other" 的值设置为 123。它不影响对象 "o".
上的值您还可以使用 getter.
从其他人那里获取价值var result = getter.call(other);