在Javascript中将变量传递给Object

时间:2017-01-30 17:18:17

标签: javascript variables object

我正在尝试将变量传递给Object,以便属性的值是我传入的变量。

var car = {
  make: 'Jeep',
  model: 'Renegade',
  year: yearVar
}

var yearVar = 2016;
console.log(car.year); //says year is undefined

那么如何设置car Object的属性等于yearVar变量?

6 个答案:

答案 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);