14

在 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 项目中,但跟踪所有内容将是一个巨大的痛苦。

是否有任何库实现了The Good Part的建议,从而省去了我必须跟踪它们的麻烦(/将它们全部输入)?

4

5 回答 5

5

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

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

于 2008-12-14T20:01:51.680 回答
1

他不是为雅虎工作吗?您总是可以使用Yahoo 用户界面库

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

于 2008-12-14T22:06:33.317 回答
1

Dojo非常密切地遵循 Crockford 的想法。例如,您在函数下实现了上面的代码片段的实现dojo.delegate(以更快的形式)。

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

于 2008-12-14T22:52:20.480 回答
0

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

于 2010-11-28T08:42:57.577 回答
0

看看es5-shimObject.create() ,一个为其他东西提供 - 尽管不完整 - shim 的库。

于 2012-08-03T15:00:24.667 回答