首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript setter -如何在setter中获取setter的名称?

Javascript setter -如何在setter中获取setter的名称?
EN

Stack Overflow用户
提问于 2019-01-12 17:40:25
回答 1查看 52关注 0票数 0

因此,我需要获取setter的名称,当我为其赋值时,将调用该setter。如下所示:

代码语言:javascript
复制
var b = {};

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

我希望setter的名称是‘嘿’,这样b.hey就等于您设置的setter的值。

我已经找了几天了,还是找不到我的问题的答案。如果能帮上忙,我们将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-12 17:46:02

您可以检查arguments.callee.name以获取函数名,切下前导set,并将其分配给b的属性

代码语言:javascript
复制
var b = {};
var a = {
  set hey(value) {
    const name = arguments.callee.name.slice(4);
    b[name] = value;
  }
}
a.hey = 'foo';

console.log(b);

但是,在严格模式下这将失败-如果可能,您可以考虑为a使用Proxy

代码语言:javascript
复制
var b = {};
var a = new Proxy({}, { set: (_, prop, val) => {
  b[prop] = val;
}});
a.hey = 'foo';

console.log(b);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54158354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档