我已经读过Crockford对using JavaScript in a more obviously prototypal manner的推动(克隆对象以创建新对象,从不使用“new”关键字)。但在野外,我从未见过任何人将这种风格用于大型项目。
在哪里可以找到使用此样式的大型项目的示例?
答案 0 :(得分:5)
必须提供一个反击者;)虽然喜欢看到使用它的大项目(如果有的话)。我喜欢Object.create自己喜欢它,虽然我从来没有能够在一个大项目中广泛使用它,也不觉得它应该是。
OO开发人员沉迷于“新”运营商,一眼就能摆脱困境,易于理解。以经典方式编写的代码现在更容易移交给下一个dev,这已经是对Object.create的强烈争论。
ES5中的Object.create(下一个JS版本)在ES3(当前的JS版本)中作为垫片的Object.create是非常强大和完全不同的。出于这个原因,最好避免使用Object.create(现在可用)作为大型项目中广泛使用的策略,因为当ES5成为主流而不是现在可实现时,它将以不同的方式工作。
大项目利用框架(当你没有流氓JS'忍者'坚持从头开始一遍又一遍地重新编写所有内容时),所有流行的框架都以经典的方式促进原型继承。它们可能有一个Object.create方法,它有一些形式为.clone()或者其他东西,但是它在关于对象继承和子类化的教程和文档中是模糊的。
ES3中的Object.create无法使用私有属性。我遇到了更多的问题,我越来越厌烦使用Object.create而且我已经摆弄了男孩......
我使用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();