使用Javascript“好的部分”的最佳方式

时间:2008-12-14 19:34:00

标签: javascript abstraction

在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项目中,但跟踪所有内容将会非常痛苦。

是否有任何库可以实现好的部分的建议,从而省去了必须跟踪它们的麻烦(/物理地将它们全部输出)?

5 个答案:

答案 0 :(得分:5)

Prototype有很多很棒的功能,包括Class helper通过对象原型处理JS“继承”的细节。

编辑:该死的,我一直忘记jQuery(我自己选择的库)有jQuery.extend

答案 1 :(得分:1)

Dojo非常密切地关注了克罗克福德的想法。例如,您可以在函数dojo.delegate下以更快的形式实现上面的代码段实现(以更快的形式)。

我认为没有一个特定的项目遵循他对球座的建议。大多数工具包实际上不同意他的一些建议和模式。如果您想知道特定的功能,比如上面的代码片段,那么值得询问您希望在项目中使用哪些特定工具。

答案 2 :(得分:1)

他不为雅虎工作吗?您始终可以使用Yahoo User Interface libraries

就个人而言,我偏爱JQuery,因为它让我觉得更简洁,但你知道:马匹是课程。

答案 3 :(得分:0)

我认为YUI最接近Crockford在他的书中所教导的内容。 (他也是雅虎的架构师,这很有意义)

答案 4 :(得分:0)

看看es5-shim,这是一个为Object.create()和其他事情提供 - 虽然不完整 - 的垫片的图书馆。