gpt4 book ai didi

Javascript setter - 如何获取 setter 内部的 setter 名称?

转载 作者:行者123 更新时间:2023-12-03 00:24:23 25 4
gpt4 key购买 nike

因此,我需要获取在为其赋值时调用的 setter 的名称。像这样:

var b = {};

var a = {
set hey(value) {
b[<name of setter>] = value;
}
}

我希望 setter 的名称为“hey”,因此 b.hey 等于您设置 a.hey 的值。

我已经搜索了几天了,但找不到我的问题的答案。非常感谢您的帮助!

最佳答案

您可以查看arguments.callee.name要获取函数名称,请切掉前导 set ,并将其分配给 b 的属性:

var b = {};
var a = {
set hey(value) {
const name = arguments.callee.name.slice(4);
b[name] = value;
}
}
a.hey = 'foo';

console.log(b);

不过,这在严格模式下会失败 - 您可能会考虑使用 Proxy代替 a ,如果可能的话:

var b = {};
var a = new Proxy({}, { set: (_, prop, val) => {
b[prop] = val;
}});
a.hey = 'foo';

console.log(b);

关于Javascript setter - 如何获取 setter 内部的 setter 名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54158354/

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