javascript - 如果我不需要继承或优化,我应该使用原型(prototype)吗

标签 javascript performance prototype

如果我的网站不需要任何类型的优化,并且我的对象结构相当平坦,因此不需要继承,那么我是否应该使用原型(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)提供的唯一真正优势是 oneWaybagOfMethods 之间的链接是实时的。

拥有实时链接可以实现真正强大的扩展和猴子修补。

一个例子是Object.prototype.methodNowLivesOnAllInstances = function () { };

这是一种“异步”编程的方式,您可以扩展“类”,而不必担心是否所有实例都获得新方法。

关于模块化模式的注释,它很臃肿并且不需要。请改用 modul8 或 browserify 等模块构建器。

关于javascript - 如果我不需要继承或优化,我应该使用原型(prototype)吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8918949/

相关文章:

javascript - .trigger ('click' ) 不适用于 mouseenter

javascript - 如何使此 JavaScript 代码可移植?

php - Symfony - 修改原型(prototype)中的默认数据

android - 获取 MultiDex 错误,即使在设置 Min SDK 21 之后

javascript - 更简单的 JavaScript 继承,无需重复代码

javascript - 在 TypeScript 中扩展基本类型,错误 : "_this is not defined..."

需要 JavaScript OOP 辅助

javascript - 使用 Web api 并获取引用错误

javascript - 如何优化对象写入性能?

java - 将请求参数设置为对象的最佳方式