在Stackers的推荐下,我一直在阅读Crockford优秀的 Javascript:The Good Parts 。
这是一本很棒的书,但由于其中很多都致力于描述使用Javascript基本功能的最佳方式,我不确定如何在不重复许多其他Javascript程序员的努力的情况下将他的建议付诸实践。
以此段落为例:
创建新对象时,可以选择应该是其原型的对象。 Javascript提供的机制是混乱和复杂的,但它可以大大简化。我们将向
create
函数添加Object
方法。create
方法创建一个使用旧对象作为其原型的新对象。if (typeof Object.create !== 'function') { Object.create = function(o) { var F = function () {}; F.prototype = o; return new F(); }
我可以手动将此代码添加到我的所有Javascript项目中,但跟踪所有内容将会非常痛苦。
是否有任何库可以实现好的部分的建议,从而省去了必须跟踪它们的麻烦(/物理地将它们全部输出)?
答案 0 :(得分:5)
Prototype有很多很棒的功能,包括Class helper通过对象原型处理JS“继承”的细节。
编辑:该死的,我一直忘记jQuery(我自己选择的库)有jQuery.extend
答案 1 :(得分:1)
他不为雅虎工作吗?您始终可以使用Yahoo User Interface libraries。
就个人而言,我偏爱JQuery,因为它让我觉得更简洁,但你知道:马匹是课程。
答案 2 :(得分:1)
Dojo非常密切地关注了克罗克福德的想法。例如,您可以在函数dojo.delegate
下以更快的形式实现上面的代码段实现(以更快的形式)。
我认为没有一个特定的项目遵循他对球座的建议。大多数工具包实际上不同意他的一些建议和模式。如果您想知道特定的功能,比如上面的代码片段,那么值得询问您希望在项目中使用哪些特定工具。
答案 3 :(得分:0)
我认为YUI最接近Crockford在他的书中所教导的内容。 (他也是雅虎的架构师,这很有意义)
答案 4 :(得分:0)
看看es5-shim,这是一个为Object.create()
和其他事情提供 - 虽然不完整 - 的垫片的图书馆。