Javascript 是否有可能获得对“a”的setter函数的引用;塞特;?

Javascript 是否有可能获得对“a”的setter函数的引用;塞特;?,javascript,getter-setter,Javascript,Getter Setter,例如,在这段代码中 var o = { set a(value) {this.b = value}, get a() {return this.b} } 是否有可能获取对o.a的setter函数的引用,以便如果该引用被分配给f,那么我可以执行f.call(其他,值)在另一个对象上使用它?尝试。它将返回一个带有getter和setter方法的对象。给定示例对象: var o = { set a(value) {this.b = value}, get a() {retur

例如,在这段代码中

var o = {
  set a(value) {this.b = value},
  get a() {return this.b}
}

是否有可能获取对
o.a
的setter函数的引用,以便如果该引用被分配给
f
,那么我可以执行
f.call(其他,值)
在另一个对象上使用它?

尝试。它将返回一个带有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);