2012-04-01 164 views
0

可以說我有一個Javascript對象:一個對象的屬性設置爲在同一個對象(使用Javascript/jQuery的)屬性的負值

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

但是,相反的-20property2,我需要採取的property1值,並將其內property2轉換成其消極:

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

這是不行的,但我認爲這說明了我想要完成的任務。

+1

我不確定你爲什麼要這樣做。乘以-1是一件容易的事情,當你在做內聯時,你可能甚至不需要進行類型檢查以確保你想要乘的屬性是相同的數據類型。好吧,我收回它。除非腳本是一個簡單的腳本,否則你應該這樣做,因爲你如何確定'property1'的值沒有被改爲NaN? – Robusto 2012-04-01 14:20:59

+0

我認爲更一般的問題是,在對象字面值內,屬性的值是否可以是涉及同一個早期對象的一個​​或多個其他屬性的表達式。 – Pointy 2012-04-01 14:22:36

+2

(答案是「不」)。 – Pointy 2012-04-01 14:23:30

回答

1

我可以建議你以下

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

編輯

看來,這是一個依賴屬性,因此它是隻讀的。但是我編輯了代碼,以便它也是可寫的。

2

你不能那樣做。您可以在以後分配給它,但:

var myObj = { 
    property1: 20 
}; 

myObj.property2 = -myObj.property1; 
0

您可以使用此:

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

但是,你只能讀property2屬性。

定義設置property2不會成爲問題。 請參閱JavaScript Getters and Setters的鏈接。

相關問題