如果声明在javascript变量声明中

时间:2016-10-28 12:52:27

标签: javascript asp-classic

我的JavaScript方法中有这样的变量声明:

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

我想要完成的是在MyVariable声明中添加一些登录名,例如:

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

这有可能吗?

4 个答案:

答案 0 :(得分:2)

使用单行对象,您无法执行此操作。您需要稍后分配。但是我可以创建一个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);




答案 1 :(得分:2)

我想你可以做到

QMenu

不完全相同,但接近。

但是怎么样

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

您可以将其包装到"工厂"功能,然后做

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

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

答案 2 :(得分:1)

您需要先创建变量并在以下后添加新属性:

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

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

答案 3 :(得分:1)

你可以这样做的一种方式:

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