【问题标题】:How can I get a property name inside the property itself in Javascript?如何在 Javascript 中获取属性本身内部的属性名称?
【发布时间】:2018-08-30 08:56:27
【问题描述】:

有没有办法可以在属性本身中获取属性的名称?

我的意思是这样的:

let myObj = {
    myProperty: {
        name: <propertyName>.toString()
    }
};

console.log(myObj.myProperty.name); // Prints `myProperty`

【问题讨论】:

  • 里面的对象不知道它的父对象。
  • 这是你需要的吗? : console.log(myObj['myProperty'].name)
  • @carton 是的,结果就是这个,但我想在不静态引用属性名称的情况下这样做。显然没有办法在 JS 上这样做:(
  • @LucasAraujo 也许这个例子可以帮助你,在你的对象中创建一个循环:codepen.io/cartons/pen/dmvgOX

标签: javascript ecmascript-6


【解决方案1】:

不,没有。评估提供该信息的对象初始值设定项时,没有可用的信息。

大概如果这是一次性的,您只需重复名称即可。如果它不是一次性的,你可以给自己一个实用函数来做到这一点:

// Define it once...
const addProp = (obj, name, value = {}) => {
    obj[name] = value;
    value.name = name;
    return obj;
};

// Then using it...
let myObj = {};
addProp(myObj, "myProperty");
addProp(myObj, "myOtherProperty", {foo: "bar"});

console.log(myObj.myProperty.name);
console.log(myObj.myOtherProperty.name);

【讨论】:

  • 具有实用功能的解决方案就可以了!看起来不太好,但它会帮助我的场景。谢谢!
猜你喜欢
  • 2013-11-27
  • 2019-08-13
  • 1970-01-01
  • 2018-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-27
相关资源
最近更新 更多