我在哪里可以找到使用Crockford的原型继承方法的大型JavaScript项目的示例?

时间:2010-08-08 23:35:12

标签: javascript oop prototypal-inheritance

我已经读过Crockford对using JavaScript in a more obviously prototypal manner的推动(克隆对象以创建新对象,从不使用“new”关键字)。但在野外,我从未见过任何人将这种风格用于大型项目。

在哪里可以找到使用此样式的大型项目的示例?

3 个答案:

答案 0 :(得分:5)

必须提供一个反击者;)虽然喜欢看到使用它的大项目(如果有的话)。我喜欢Object.create自己喜欢它,虽然我从来没有能够在一个大项目中广泛使用它,也不觉得它应该是。

  1. OO开发人员沉迷于“新”运营商,一眼就能摆脱困境,易于理解。以经典方式编写的代码现在更容易移交给下一个dev,这已经是对Object.create的强烈争论。

  2. ES5中的Object.create(下一个JS版本)在ES3(当前的JS版本)中作为垫片的Object.create是非常强大和完全不同的。出于这个原因,最好避免使用Object.create(现在可用)作为大型项目中广泛使用的策略,因为当ES5成为主流而不是现在可实现时,它将以不同的方式工作。

  3. 大项目利用框架(当你没有流氓JS'忍者'坚持从头开始一遍又一遍地重新编写所有内容时),所有流行的框架都以经典的方式促进原型继承。它们可能有一个Object.create方法,它有一些形式为.clone()或者其他东西,但是它在关于对象继承和子类化的教程和文档中是模糊的。

  4. ES3中的Object.create无法使用私有属性。我遇到了更多的问题,我越来越厌烦使用Object.create而且我已经摆弄了男孩......

  5. 我使用Object.create玩了很多,甚至围绕它编写了一个小框架,名为'Objection'(如果你有兴趣,你会发现它;)虽然避免链接到github)和'JSoo'(停产)。对于大型项目而言,在人力资源方面成为主流和可维护性的过于滑稽,未完成和渐进。作为支持者,我建议反对它。

答案 1 :(得分:0)

您可以在此处找到Nokia WRT Plug-in for Visual Studio,这是诺基亚小部件开发人员的插件。

来自诺基亚论坛:

The Nokia WRT Plug-in for Visual Studio provides features that enable 
the creation, editing, testing, and deployment of WRT widgets from within
Visual Studio.

答案 2 :(得分:-1)

尝试:http://showroom.auction123.com/auction123/index.html

我们根本不使用new ...我们只需设置函数的结果并将其用作类。

例如:

// CLASS DECLARATION
var ClassName = function() {

  var public;
  var private;

  var publicFunction = function() {
    // DO STUFF
  };

  // RETURN  OBJECT
  return {
     public: public,
     publicFunction: publicFunction
  };

};

最后的回报只是告诉我们什么是公开的。

通过执行以下操作实例化:

var object = ClassName();