如何在Javascript中获取属性本身内的属性名称?

时间:2018-03-21 09:48:09

标签: javascript ecmascript-6

有没有办法可以在物业内找到物业名称?

我的意思是这样的:

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

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

1 个答案:

答案 0 :(得分:1)

不,没有。当评估提供该信息的对象初始化程序时,没有任何可用的东西。

据推测,如果这是一次性的,你只需要重复这个名字。如果它不是一次性的,你可以给自己一个实用功能:

&#13;
&#13;
// 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);
&#13;
&#13;
&#13;