如何评估对象文字中的键?

Jon*_*ell 1 javascript object-literal

这是我的功能

function goldAndSilver(bin) {
    var gold = bin.gold;
    var silver = bin.silver;
    return { gold: gold, silver: silver };
}
Run Code Online (Sandbox Code Playgroud)

为什么第一个gold参考的名称和第二个gold参考时,var gold = bin.gold已在执行下遇到.线路运行后并不gold = number总是和返回应该导致{5: 5}而不是{gold: 5}

Irk*_*der 5

使用这种表示法{ gold: gold, silver: silver },冒号之前的单词将始终是名称,它永远不会引用变量.

如果要使用变量作为对象属性的名称,可以这样做:

var gold = 5;
var obj = {};
obj[gold] = gold;
Run Code Online (Sandbox Code Playgroud)

这导致了 Object {5: 5}