gpt4 book ai didi

javascript - 是否有可能获得对 "setter"的 setter 函数的引用?

转载 作者:数据小太阳 更新时间:2023-10-29 04:29:56 27 4
gpt4 key购买 nike

例如,在这段代码中

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

是否有可能获得对 o.a 的 setter 函数的引用,这样如果引用被分配给 f 那么我可以执行 f.call( other, value) 在另一个对象上使用它?

最佳答案

给定您的示例对象:

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);

关于javascript - 是否有可能获得对 "setter"的 setter 函数的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28402257/

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