我正在尝试将变量传递给Object,以便属性的值是我传入的变量。
var car = {
make: 'Jeep',
model: 'Renegade',
year: yearVar
}
var yearVar = 2016;
console.log(car.year); //says year is undefined
那么如何设置car Object的属性等于yearVar变量?
答案 0 :(得分:2)
undefined
不是错误。它是undefined
,因为在您为对象分配yearVar
的值时,变量yearVar
尚未定义,因此它将分配undefined
。 (之后定义变量将无法解决问题,因为已经分配了undefined
)。你需要做的是:
// define yearVar first
var yearVar = 2016;
var car = {
make: 'Jeep',
model: 'Renegade',
year: yearVar // then use it afterwards (after it's been defined)
}
答案 1 :(得分:1)
声明变量yearVar
并在创建car
对象之前指定其值。
var yearVar = 2016;
var car = {
make: 'Jeep',
model: 'Renegade',
year: yearVar
}
console.log(car.year)

答案 2 :(得分:1)
在定义car对象之前,您需要声明并设置yearVar varible。 Javascript从上到下执行做这样的事情肯定会起作用
var yearVar = 2016;
var car = {
make: 'Jeep',
model: 'Renegade',
year: yearVar
}
console.log(car.year);
答案 3 :(得分:0)
要在创建car
后进行更改:
var car = {
make: 'Jeep',
model: 'Renegade',
year:null
}
car.year = 2016;
console.log(car.year);
答案 4 :(得分:0)
我不明白为什么你没有在console.log
电话之前看到错误。运行代码时,使用对象文字表示法创建car
对象时应收到错误。您看到收到错误的原因是,当您构建car
时,它会尝试获取尚未存在的yearVar
值。
要修复错误,只需将yearVar
声明移到汽车对象创建之上,如下所示:
var yearVar=2010
var car = {make:'Jeep',model:'Renegade',year:yearVar}
答案 5 :(得分:0)
虽然问题已经解决,但我正在分享新的东西,但这是正确的。这是一种名为hoisting的JavaScript引擎使用的技术。
yearVar = 2016; //check the var declaration in the bottom
var car = {
make: 'Jeep',
model: 'Renegade',
year: yearVar
}
var yearVar;
console.log(car.year);