2017-12-02 70 views
0

的JavaScript學習:給這個對象:在財產申報中不能做數學運算嗎?這裏

var ivan = { 
 
    name: 'Ivan', 
 
    yearOfBirth: 1973, 
 
    age: 2017 - this.yearOfBirth 
 
} 
 

 
console.log(ivan.age);

爲什麼說的console.log NaN?我不能在財產申報中進行簡單的數學運算嗎?如果不是,爲什麼?

+1

'this.yearOfBirth'沒有定義尚未... –

+1

'this'並不是指你在製作不同類型的處理對象。 – Quentin

+0

您可以在這個問題上找到解決方案的答案https://stackoverflow.com/questions/2787245/how-can-a-javascript-object-refer-to-values-in-it-本身 –

回答

1

因爲this.yearOfBirth碰巧還沒有定義,你可以使用匿名函數作爲構造:

var ivan = new function() { 
    this.name = 'Ivan', 
    this.yearOfBirth = 1973, 
    this.age = 2017 - this.yearOfBirth 
}; 

希望這有助於。

var ivan = new function() { 
 
    this.name = 'Ivan', 
 
    this.yearOfBirth = 1973, 
 
    this.age = 2017 - this.yearOfBirth 
 
}; 
 
console.log(ivan.age);

+0

謝謝,解決方案也是如此目前爲我先進(我正在遵循一個Javascript課程),但我想我得到了解釋:所以,當我定義對象時,「this」不存在......當我「使用」莫名其妙的對象,對吧? – Ivan

+0

呵呵,還有更多:「這個」只能用在對象方法裏面,對吧?使用它在像我不工作的例子那樣的屬性是一團糟,事實證明,不是嗎? – Ivan