2012-06-25 64 views
2

這裏是一個人爲的例子:在JavaScript中進行原型設計時,哪種方法更受歡迎?

我想分兩個數字,我需要寫一個方法來這樣做。我可以寫這樣的事:

function divide(dividend,divisor) { 
    return dividend/divisor; 
}; 

//Assign the result of the divide function to an element on the page. 
$(".firstanswer").html(divide(6,2)); 

我也可以寫這樣的事:

Number.prototype.dividedBy = function (divisor)​ { 
    var dividend = this; 
    return dividend/divisor; 
}; 

var six = 6; 
var two = 2; 
$(".secondanswer").html(six.dividedBy(two)); 

這兩種方法產生相同的答案,所以想什麼,我知道是這樣的:
什麼使用這兩種方法的優點還是缺點。是否有顯着的性能(加載/運行時間)差異?在內存影響方面,還有一個可重複使用的比另一個更重要嗎?理解的容易程度如何?最終,作爲一個簡單的例子,這有什麼關係嗎?因爲代碼更好,我也是created a Fiddle

+0

IMO,首先是回調更實用。 –

回答

7

有在第一種方法沒有缺點

在第二種方法,你就有可能實現,如果它變成什麼NumberMath對象或具有相同功能的名稱一些其它第三方庫的一部分(除了不同的語法) :)

雖然正常,以避免它,這樣做是:

Number.prototype.dividedBy = Number.prototype.dividedBy || function (divisor)​ { 
    var dividend = this; 
    return dividend/divisor; 
}; 

這樣一來,你說,如果有該功能已經存在使用該其他人創建自己的。


有關詳細信息,請參閱(又被@Kangax另一個偉大的文章總是)

+0

這是完美的,你提供的代碼是非常有用的。感謝您的回答。 –

+0

@AndyF:不客氣 – Blaster