2012-01-31 94 views
1

我最近購買了Douglas Crockford的商品零件。我正在瀏覽增強類型部分,我需要一些幫助以下代碼概念。從數字中提取整數

Number.method("integer", function(){ 
    return Math[this < 0 ? "ceiling" : "floor"] (this); 
}); 

document.writeIn((-10/3).integer()); 

根據本書結果應該是3,但我得到一個錯誤,而我做了console.log而不是document.writeIn。

Number.method不是函數。作爲一個JavaScript初學者,我有點困惑,任何幫助將不勝感激。

謝謝。 Udit G.

+1

重複http://stackoverflow.com/questions/6868883/augmenting-types-in-javascript(檢查它) – Alfabravo 2012-01-31 19:59:32

+0

對不起,但我沒有發佈之前搜索。但是,謝謝,我現在將在該頁面上跟進。 – iuditg 2012-02-02 13:42:39

+1

希望在那裏的調查結果將幫助你與你的問題:) – Alfabravo 2012-02-02 18:58:31

回答

5

他在另一個場合定義了函數「method」。它不是標準的一部分。

一個例子是在這裏http://www.crockford.com/javascript/inheritance.html#sugar

Function.prototype.method = function (name, func) { 
    this.prototype[name] = func; 
    return this; 
}; 

你只應比分扳成對象或數字,而不是功能的鏈接。

+0

我仍然是一個小混亂。那麼你的意思是我不應該遵循這種編碼技術? – iuditg 2012-02-01 19:03:55

+0

你可以使用它,但請記住它只是一個捷徑(而且imo不是一個非常有用的)。關於是擴展本地對象還是使用一些自己的名稱空間,有相當多的討論。 – Sirko 2012-02-01 19:32:00

+0

好的謝謝你的建議。我會對增強類型做更多的研究。 – iuditg 2012-02-02 13:43:12