2016-07-02 37 views
0

這是我的第一篇文章,即時通訊編程新手,這是我第一個使用對象的小項目。我需要一些專家的眼光來告訴我,如果我是這麼做的,或者這是實現我目標的最快方法。 我只是想讓這會壓制在HTML列表中顯示的信息時,一個按鈕:單擊該按鈕時Javascript:我是否儘可能有效地做到這一點?

<li> Name: <a id=name> </a> </li> 
    <li> Age: <a id=age> </a> </li> 
    <li> Instrument: <a id=horn> </a> </li> 

    <script> 
function cat(name,age,horn) { 
    this.name = name; 
    this.age = age; 
    this.horn = horn; 
    } 

    var milesD = new cat("Miles Davis",75,"trumpet"); 


    catName = document.getElementById("name"); 
    catAge = document.getElementById("age"); 
    catHorn = document.getElementById("horn"); 

     function milesFunction() { 

      catName.innerHTML = milesD.name; 
      catAge.innerHTML = milesD.age; 
      catHorn.innerHTML = milesD.horn; 

}

現在這個目前完成我的goal.its顯示的信息。 但是,當我添加一個新的對象具有相同的目標:

var johnC = new cat("John Coltrane",41,"saxophone"); 

我發現自己重新寫了很多相同的功能:

 function coltraneFunction() { 
      catName.innerHTML = johnC.name; 
      catAge.innerHTML = johnC.age; 
      catHorn.innerHTML = johnC.horn; 

如果我是做的整個目錄這種類型的對象/函數關係,有沒有辦法讓我可以做一個for循環來節省自己的時間,還是這是唯一的方法來做到這一點?

謝謝

+3

如果你的代碼工作,這可能是上更好http://codereview.stackexchange.com/ – j08691

+0

'但是,當我添加一個新的對象具有相同的目標,我發現自己重新寫了很多的相同的材料:'?你能用代碼解釋嗎? –

+3

歡迎來到Stack Overflow。本網站更多關於實際問題的問題。鑑於您的代碼按原樣運行,並且您只想獲得有關該代碼的反饋,因此我將投票結束此問題,因爲它將更好地放在http://codereview.stackexchange.com/上。 – nnnnnn

回答

0

您不需要重複該代碼。用參數創建一個函數並重用它。

catName = document.getElementById("name"); 
catAge = document.getElementById("age"); 
catHorn = document.getElementById("horn"); 


function update(obj) { 
    catName.innerHTML = obj.name; 
    catAge.innerHTML = obj.age; 
    catHorn.innerHTML = obj.horn; 
} 

var milesD = new cat("Miles Davis",75,"trumpet"); 
update(milesD); 

var milesE = new cat("Miles Edison",100,"ABC"); 
// Just call update function with new object. 
update(milesE); 
相關問題