2014-01-13 57 views
0

我正在試圖找到一種方法來獲取car.engine.name的值到屬性manufacturerinfo對象。我嘗試了幾件事,但我一直未定義。JavaScript對象文字屬性範圍

var car = { engine:{} } 
car.engine = { 

    name : "bmw", 
    info : { 
     rpm : 5500, 
     manufacturer : car.engine.name // undefined 
    } 

} 
+3

你不能。該值在當時不存在。 'car.engine.name'將不會是'「bmw」'直到聲明結束。 – meagar

回答

1

或者框架不可知:

var Car = function (config) { 
    this.engine = { 
     name: config.name, 
     info: { 
      rpm: config.rpm, 
      manufacturer: config.name 
     } 
    } 
} 

var bmw = new Car({name: 'bmw', rpm: 5500}); 
1

關鍵是讓第一任務執行第一,使屬性存在,然後設置從現有的數據製造商屬性。

var car = { engine:{} } 
car.engine = { 
    name : "bmw", 
    info : { 
     rpm : 5500 
    } 
} 
car.engine.info.manufacturer = car.engine.name; 
0

嘗試這樣的事情

$(function(){ 
    var _name = "bmw" 
    var car = { engine:{} } 
    car.engine = { 

     name : _name, 
     info : { 
      rpm : 5500, 
      manufacturer : _name 
     } 

    } 
    console.log(car.engine.name)//bmw 
    console.log(car.engine.info.manufacturer)//bmw 
})