![](/img/trans.png)
[英]“JavaScript: The Good Parts”-way to implement prototype methods?
[英]Best way to use Javascript's “good parts”
在Stackers的推薦下,我一直在閱讀Crockford的優秀Javascript:The Good Parts 。
這是一本很棒的書,但由於其中很多都致力於描述使用Javascript基本功能的最佳方式,我不確定如何在不重復許多其他Javascript程序員的努力的情況下將他的建議付諸實踐。
以這段話為例,例如:
創建新對象時,可以選擇應該是其原型的對象。 Javascript提供的機制是混亂和復雜的,但它可以大大簡化。 我們將向
Object
函數添加一個create
方法。create
方法創建一個使用舊對象作為其原型的新對象。if (typeof Object.create !== 'function') { Object.create = function(o) { var F = function () {}; F.prototype = o; return new F(); }
我可以手動將此代碼添加到我的所有Javascript項目中,但跟蹤所有內容將是一個巨大的痛苦。
是否有任何庫實現了Good Part的建議,從而省去了必須跟蹤它們(/物理地將它們全部輸出)的麻煩?
Prototype有許多很棒的功能,包括一個通過對象原型處理JS“繼承”細節的Class幫助器 。
編輯:該死的,我一直忘記jQuery(我自己選擇的庫)有jQuery.extend
他不為雅虎工作嗎? 您始終可以使用Yahoo用戶界面庫 。
就個人而言,我偏愛JQuery ,因為它讓我更加簡潔,但你知道:馬匹是課程。
Dojo非常密切地關注了Crockford的想法。 例如,有一個上面在函數dojo.delegate
下實現的代碼片段的實現(以更快的形式)。
我不認為有一個特定的項目遵循他對發球台的建議。 大多數工具包實際上不同意他的一些建議和模式。 如果您想知道特定的功能,比如上面的代碼片段,那么值得詢問您希望在項目中使用哪些特定工具。
看看es5-shim ,一個為Object.create()
和其他東西提供 - 盡管不完整 - 的墊片的庫。
我認為YUI最接近Crockford在他的書中所教導的內容。 (他也是雅虎的架構師,這很有道理)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.