好吧,醜陋是主觀的,但讓我們來看看。
你平時寫:
function Foo() {}
Foo.prototype.method1 = function() { /*...*/ };
Foo.prototype.method2 = function() { /*...*/ };
您與您要繼承由新的運營商創建的實例屬性擴展prototype
對象constructor function。
例如你正在創建的Foo
構造的一個實例var obj = new Foo();
,該對象將繼承所有綁定到Foo.prototype
目標和其他目標的prototype chain更高的性能。
的Crockford的方法不一樣,該方法在Function.prototype
對象定義,所有的功能從該對象繼承,所以你可以這樣調用方法:
function Foo() {}
Foo.method('method1', function() { /*...*/ });
Foo.method('method2', function() { /*...*/ });
它基本上只是皮的從代碼,克羅克福德認爲醜陋prototype
字...
「的JavaScript好的部分」確實是一個很好的書,但我認爲是基於個人的角度出發,道格拉斯Crockfor d有語言。閱讀代碼時
我同意他的觀點與很多東西,但我也有一些方面不同意...
來源
2010-06-01 06:43:19
CMS
用的是「原型」,似乎更加明確和明顯。感謝您的答案:) – Matrym 2010-06-01 08:34:10
我同意。在這種情況下,克羅克福德正在咆哮着錯誤的樹木。 – bobince 2010-06-03 08:25:49