2013-04-30 42 views
1

如何将我的对象的属性设置为变量?该变量等于表单文本字段值。当我显示mycar对象时,obj.propertyobj[property]都给我一个undefined error将javascript对象属性设置为变量

function auto(manufacturer,model,engine_size,year,color,price) 
{ 
    this.manufacturer = manufacturer; 
    this.model = model; 
    this.engine_size = engine_size; 
    this.year = year; 
    this.color = color; 
    this.price = price; 
} 

var mycar = new auto(); 

var a = document.form.num1.value; 
mycar.manufacturer = a; 
mycar[manufacturer] = a; 

对不起。这里是我所有的代码http://jsfiddle.net/vzqjv/

即时尝试将我的对象属性设置为一个变量,一个等于表单文本字段值后,一些验证,看看它是否检出。

+0

这是整个代码? – 2013-04-30 03:23:42

+0

你确定“a”不是未定义的吗? – 2013-04-30 03:24:51

+0

@KhanhTo:但是这不会给出错误(在mycar上),是吗? – 2013-04-30 03:26:26

回答

1

mycar.manufacturer = aa分配给mycar的一个属性,其名称为manufacturer

mycar[manufacturer] = aa分配给属性mycar,其名称与变量manufacturer的值相同。你可能意思是mycar["manufacturer"] = a

0

您没有给出自动的定义。我想你没有制造商的财产。另一种方式是刚做

var mycar = {}; 
var a = document.form.num1.value; 
mycar.manufacturer = a; 
1

第二符号

mycar[manufacturer] = a; 

应该

mycar["manufacturer"] = a; 

的第一表示应该工作。你是否以我们看不到的方式修改mycar?

我的猜测是未定义的错误实际上是在这条线:

var a = document.form.num1.value; 

的是,正在正确定义?

+0

'document.form.num1.value;'似乎根据开发工具正确返回。这可能只是'mycar [制造商]'! – doppelgreener 2013-04-30 03:44:40

1

您还没有声明变量manufacturer,因此当您执行mycar[manufacturer] = a;时,它是未定义的。您需要可以定义它

var a = document.form.num1.value, 
    manufacturer = "manufacturer"; 
mycar.manufacturer = a; 
mycar[manufacturer] = a; 

或使用引号:

var a = document.form.num1.value; 
mycar.manufacturer = a; 
mycar["manufacturer"] = a;