我的JavaScript方法中有这样的变量声明:
var MyVariable = {
CarMake: "Lexus",
CarColor: "Black"
}
我想要完成的是在MyVariable声明中添加一些登录名,例如:
var MyVariable = {
CarMake: "Lexus",
if (carType == "sedan") {
NumberOfDoors: 4,
}
CarColor: "Black"
}
这有可能吗?
答案 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")