2011-03-22 112 views
2

我通過創建一些對我有用的函數來擴展了javascript的核心功能。當爲今天的函數創建測試用例時,我開始想知道哪種方式最適合爲整數數字擴展javascripts功能。使用Number.prototype或Math對象。擴展javascript功能時,Number和Math函數有什麼區別?

Number.prototype.sqr = function() { 
    return this * this; 
}; 
var test1 = (6).sqr(); 
alert("This is 36: " + test1); 

OR

Math.sqr = function (num) { 
    return num * num; 
}; 
var test2 = Math.sqr(6); 
alert("This is 36: " + test2); 

這兩個例子可以圍繞着爲您想創建任何整數類型的功能進行切換,所以應該使用哪個?

回答

3

我會去與Math.sqr,因爲它不強制代碼的讀者認爲‘這是什麼東西,有一個sqr成員嗎?’。當然,在一個真正的程序中,你不會看到(6).sqr()這可能會使得它更清晰,而是更改一些變量。

1

無論你喜歡什麼語法,都無所謂。當你開始搞亂Array.prototype或(GASP)Object.prototype時,情況並非如此。

爲了保持一致性,我更喜歡修改數學,因爲pow,sqrt,sin等其他內容都存在。

相關問題