相关疑难解决方法(0)

对象文字/初始化器中的自引用

有没有办法在JavaScript中使用以下内容?

var foo = {
    a: 5,
    b: 6,
    c: this.a + this.b  // Doesn't work
};
Run Code Online (Sandbox Code Playgroud)

在当前形式中,此代码显然会抛出引用错误,因为this没有引用foo.但是,有什么办法对早些时候宣布的其他属性在对象文本的属性值依赖?

javascript object-literal

660
推荐指数
14
解决办法
12万
查看次数

Javascript对象如何引用值本身?

可以说我有以下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 object

158
推荐指数
8
解决办法
9万
查看次数

在对象内引用对象

我正在编写一个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示例不是很好,但基本上我有一个对象文字,并希望避免重复,我有不同的键具有相同的值.我也想知道为什么它不能用于好奇心

javascript oop object-literal

1
推荐指数
1
解决办法
82
查看次数

标签 统计

javascript ×3

object-literal ×2

object ×1

oop ×1