2013-06-21 41 views
0

我是Javascript新手,我正在學習如何使用OOP校長。我堅持分配對象屬性,然後再訪問它們。假設我有這個函數將屬性賦值給一個對象「Car」。由另一個函數分配後訪問對象屬性

function assignProps() 
{ 
Car.size="small"; 
Car.cost="expensive"; 
} 

對象汽車具有空屬性,因爲它們是從函數分配的。

var Car = 
{ 
size:"", 
cost:"", 
returnSize: function() 
      { 
      return this.size; 
      }, 
returnCost: function() 
      { 
      return this.cost; 
      }, 

} 

現在,我想調用賦值的函數,然後訪問Car的屬性。我試過這樣做,但它顯然失敗了:

function accessProps() 
{ 

assignProps(); 
console.log(Car.returnSize()); 
console.log(Car.returnCost()); 

} 

任何幫助,將不勝感激。我有一種感覺,這可能與構造函數或原型有關,但由於在Javascript中創建自定義對象的方法有很多,所以文檔非常混亂。編輯:通過「失敗」我的意思是說,它輸出空白,而不是新分配的值 編輯:我試過這樣做,以及它產生了相同的結果。

+0

什麼失敗?錯誤信息是什麼?什麼行失敗了,在你的代碼中對應哪行? –

+0

你忘記調用accessProps()嗎? – Stephan

+0

你能按順序顯示整個代碼嗎? Car正在被創建,並且正在調用'accessProps'的地方? –

回答

1

你有一些錯誤,在你的代碼:

var Car = { 
    size:"", 
    cost:"" 
} 

如果你看看這個小提琴:http://jsfiddle.net/JskBy/ 它按預期工作。

全碼:

function assignProps() { 
    Car.size="small"; 
    Car.cost="expensive"; 
} 

var Car ={ 
    size:"", 
    cost:"" 
} 
function accessProps(){ 
    assignProps(); 
    console.log(Car.size); 
} 

assignProps(); 
accessProps(); 
0

你有你的車對象初始化語法錯誤​​,應該是

var Car = { size: "", cost: "" }; 
0

第18行,列14:多餘的逗號。

第20行第2列:缺少分號。

嘗試使用內置JSLint/JSHint(例如附帶Notepad ++)來獲得開發工具,它可能會幫助您調試類似這樣的問題。

相關問題