2013-04-30 86 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; 
相關問題