<分区>
我已经阅读了有关 Crockford 插入 using JavaScript in a more obviously prototypal manner 的信息(克隆对象以创建新对象,从不使用“new”关键字)。但在野外,我从未见过有人将这种风格用于更大的项目。
在哪里可以找到使用这种风格的大型项目的示例?
<分区>
我已经阅读了有关 Crockford 插入 using JavaScript in a more obviously prototypal manner 的信息(克隆对象以创建新对象,从不使用“new”关键字)。但在野外,我从未见过有人将这种风格用于更大的项目。
在哪里可以找到使用这种风格的大型项目的示例?
最佳答案
必须提供一个反 awnser ;) 尽管希望看到大型项目也使用它(如果有的话)。我自己喜欢 Object.create 并且更喜欢它,尽管我从来没有能够在一个大项目中广泛使用它,也不觉得它应该如此。
OO 开发人员沉迷于"new"运算符,这是一个很难改掉的习惯,而且一目了然。以经典方式编写的代码现在更容易移交给下一位开发人员,这已经成为反对 Object.create 的有力论据。
ES5(下一个 JS 版本)中的 Object.create 比 ES3(当前 JS 版本)中的 Object.create 更强大并且截然不同。出于这个原因,最好避免将 Object.create(目前可用)作为大型项目中广泛使用的策略,因为当 ES5 成为主流时,它的工作方式将与现在可实现的不同。
大型项目会使用框架(当您没有流氓 JS“忍者”时,他们坚持从头开始编写所有内容,一遍又一遍地重新发明轮子)并且所有流行的框架都以经典方式促进原型(prototype)继承。他们可能有一个 Object.create 方法,其形式为 .clone() 或其他形式,但在有关对象继承和子类化的教程和文档中被掩盖了。
ES3 中的 Object.create 不可能使用私有(private)属性。我摆弄 Object.create 越多,我遇到的问题就越多,男孩,我摆弄了它......
我经常使用 Object.create,甚至围绕它编写了一个名为“Objection”的小型框架(如果您感兴趣,您会发现它;)虽然没有链接到 github)和“JSoo”(停产)。就大型项目的人力资源而言,它太滑稽、未完成和进步,无法成为主流和可维护的。作为支持者,我反对它。
关于javascript - 在哪里可以找到使用 Crockford 方法进行原型(prototype)继承的大型 JavaScript 项目的示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3436498/