很抱歉这样一个随机的标题,但不知道如何更好地解释它。因此,不知道这是否是一个重复的问题。
因此,在声明一个新对象时,我想要计算giga
值:
var myObject = {
super : 1,
mega : 5,
uber : 100,
giga : this.super + this.mega + this.uber // super + mega + uber doesn't cut it either..
};
但这不起作用,那么,在声明或不可能时这样做的任何方法都可以吗?
希望我已经让自己明确并提前感谢!
答案 0 :(得分:6)
在Javascript 1.5中,您可以使用get
关键字来定义getter
var obj = {
super : 1,
mega : 5,
uber : 100,
get giga() {
return this.super + this.mega + this.uber;
}
};
alert(obj.giga) // 106
更多关于此http://robertnyman.com/2009/05/28/getters-and-setters-with-javascript-code-samples-and-demos/
答案 1 :(得分:4)
我认为你有一个很好的理由需要内联,否则就是这样 欺骗并不是一个好主意。
以下是我提出的建议:
var myObject = (function(){
this.giga = this.super + this.mega + this.uber;
return this;
}).call({
super : 1,
mega : 5,
uber : 100
});
答案 2 :(得分:0)
var myObject = {
super : 1,
mega : 5,
uber : 100
};
myObject.giga = myObject.super + myObject.mega + myObject.uber;