将对象属性设置为同一对象中属性的负值(Javascript / jQuery)

时间:2012-04-01 14:11:17

标签: javascript object properties

假设我有一个Javascript对象:

var myObj = {
 property1 : 20,
 property2 : -20
}

-20代替property2,我需要取property1的值并将其转换为property2内的负数:

var myObj = {
 property1 : 20,
 property2 : this.property1 * -1
}

这不起作用,但我认为这说明了我想要完成的任务。

3 个答案:

答案 0 :(得分:2)

你做不到。您可以稍后分配:

var myObj = {
    property1: 20
};

myObj.property2 = -myObj.property1;

答案 1 :(得分:1)

我可以建议你以下

var myObj = {
    property1 : 20,
    get_property2 : function() {
        return this.property1 * -1;
    },
    set_property2 : function(value) {
        this.property1 = value * -1;
    }
}

修改

似乎这是一个依赖属性所以它只是readonly。但我编辑了代码,以便它也可写。

答案 2 :(得分:0)

您可以使用:

var myObj = {
   property1 : 20,
   get property2() {    return this.property1 * -1;   }
};

但你只能阅读property2财产。

定义property2的setter不会有问题。 请参阅JavaScript Getters and Setters链接。