2016-10-28 5 views
0

У меня есть такое объявление переменного в моем методе JavaScript на:Если оператор в Javascript Объявления переменной

var MyVariable = { 
    CarMake: "Lexus", 
    CarColor: "Black" 
} 

То, что я пытаюсь сделать, это добавить некоторый логин в MYVARIABLE декларации, такие как:

var MyVariable = { 
    CarMake: "Lexus", 
    if (carType == "sedan") { 
     NumberOfDoors: 4, 
    } 
    CarColor: "Black" 
} 

Возможно ли это как-то?

ответ

1

Вам нужно, прежде чем создать переменную и добавить новый атрибут после:

var MyVariable = { 
    CarMake: "Lexus", 
    CarColor: "Black" 
} 

if (carType == "sedan") { 
    MyVariable.NumberOfDoors = 4 
} 
+0

Я думаю, что здесь есть проблема синтаксиса. Двоеточие внутри оператора if должно быть заменено знаком равенства, чтобы сделать, если заявление, если я не ошибаюсь. Во всяком случае, хорошая идея. Спасибо за ваш ответ! – Peter

+0

Да, у вас есть право :) Я отредактировал с вами предложение – Berserk

2

С объекта однострочного вы не можете это сделать. Вам нужно назначить его позже. Но я thnik вы можете создать class(ES6) и использовать как

class Car{ 
 
    constructor(maker, color, type){ 
 
     this.maker = maker; 
 
     this.color = color; 
 
     if(type === 'sedan'){ 
 
     this.numberOfDoors = 4; 
 
     } 
 
    } 
 
} 
 

 
var car = new Car('Lexus','Black','sedan'); 
 
console.log(car.numberOfDoors);

Или использовать синтаксис function

function Car(maker, color, type){  
 
      this.maker = maker; 
 
      this.color = color; 
 
      if(type === 'sedan'){ 
 
      this.numberOfDoors = 4; 
 
      } 
 
    } 
 

 
    var car = new Car('Lexus','Black','sedan'); 
 
    console.log(car.numberOfDoors);

2

Я полагаю, вы могли бы сделать

var MyVariable = { 
    CarMake: "Lexus", 
    CarColor: "Black", 
    NumberOfDoors: (carType === 'sedan') ? 4 : undefined 
} 

, который не совсем то же самое, но близко.


Но как насчет

var MyVariable = { 
    CarMake: "Lexus", 
    CarColor: "Black" 
} 

if (carType === 'sedan') { 
    MyVariable.NumberOfDoors = 4 
} 

Вы можете обернуть это в функцию "фабрики", а затем сделать

var MyVariable = makeCar("Lexus", "Black", "sedan") 
1

Один из способов вы можете сделать это:

var MyVariable = { 
    CarMake: "Lexus", 
    CarColor: "Black" 
} 

if (carType == "sedan") { 
    MyVariable.NumberOfDoors = 4; 
} 
+0

работал отлично. Благодаря! – Peter