2014-01-13 3 views
0

Я пытаюсь найти способ получить значение car.engine.name к объекту manufacturer объекта info. Я пробовал несколько вещей, но я продолжаю становиться неопределенным.Объект объекта литерального объекта 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 
}) 
Смежные вопросы