如果我的网站不需要任何类型的优化,并且我的对象结构相当平坦,因此不需要继承,那么我是否应该使用原型(prototype):
MyObject.prototype.<something>
我引用这个问题Javascript when to use prototypes以及 John Resig 的各种著作,他似乎关注原型(prototype)的性能值(value)。
我发现使用模块模式来定义对象及其函数更容易阅读和管理,正如 michielvoo 提到的,过早的优化往往弊大于利。
原型(prototype)还有其他好处或用例吗?
最佳答案
这是一种代码组织模式。
有两种跨对象共享方法的好方法
var oneWay = Object.create(bagOfMethods);
// some value of extend that is sensible
var otherWay = extend({}, bagOfMethods);
原型(prototype)提供的唯一真正优势是 oneWay
和 bagOfMethods
之间的链接是实时的。
拥有实时链接可以实现真正强大的扩展和猴子修补。
一个例子是Object.prototype.methodNowLivesOnAllInstances = function () { };
这是一种“异步”编程的方式,您可以扩展“类”,而不必担心是否所有实例都获得新方法。
关于模块化模式的注释,它很臃肿并且不需要。请改用 modul8 或 browserify 等模块构建器。
关于javascript - 如果我不需要继承或优化,我应该使用原型(prototype)吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8918949/