有没有办法在JavaScript中使用以下内容?
var foo = {
a: 5,
b: 6,
c: this.a + this.b // Doesn't work
};
Run Code Online (Sandbox Code Playgroud)
在当前形式中,此代码显然会抛出引用错误,因为this没有引用foo.但是,是有什么办法对早些时候宣布的其他属性在对象文本的属性值依赖?
可以说我有以下javascript:
var obj = {
key1 : "it ",
key2 : key1 + " works!"
};
alert(obj.key2);
Run Code Online (Sandbox Code Playgroud)
"key1未定义"时出现此错误.我试过了
this.key1
this[key1]
obj.key1
obj[key1]
this["key1"]
obj["key1"]
Run Code Online (Sandbox Code Playgroud)
他们似乎从来没有定义过.
如何让key2引用key1的值?
我正在编写一个javascript对象,并防止重复同一对象的别名
例如,在此处重复相同值的键:
var colours = {
red: {
rgb: "255,0,0",
hex: "#FF0000"
},
brickred: {
rgb: "255,0,0",
hex: "#FF0000"
}
};
Run Code Online (Sandbox Code Playgroud)
我尝试引用同一个对象,而不是重复:
var colours = {
red: {
rgb: "255,0,0",
hex: "#FF0000"
},
brickred: this.red
};
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.我意识到(我认为)这是因为它指的是窗口对象而不是颜色.那么我试过:
var colours = {
red: {
rgb: "255,0,0",
hex: "#FF0000"
},
brickred: colours.red
};
Run Code Online (Sandbox Code Playgroud)
但这仍然不起作用,我不明白为什么.我怎么解决这个问题?
NB示例不是很好,但基本上我有一个对象文字,并希望避免重复,我有不同的键具有相同的值.我也想知道为什么它不能用于好奇心