我很好奇这两种使用原型(prototype)编写 JavaScript 函数的方法之间的区别。在许多 JS 样式指南中,后者优于前者,但由于 DRY 原则,我发现后者有些多余。这只是风格问题吗?一个版本比另一个版本快吗?我是否遗漏了一些明显的东西?:
保持干燥?
var Klass = function() {}
Klass.prototype = {
propertyA: 20,
propertyB: "hey there",
methodA: function() {},
methodB: function() {},
}
风格指南中普遍推荐的:
var Klass = function() {}
Klass.prototype.propertyA = 20;
Klass.prototype.propertyB = "hey there";
Klass.prototype.methodA = function() {};
Klass.prototype.methodB = function() {};
任何澄清这一点的帮助将不胜感激!谢谢——
最佳答案
第一个示例将 prototype
完全替换为对象的内容;第二个设置单独的属性而不破坏现有数据。
您可以通过使用某些版本的 extend
将该对象合并到原型(prototype)中,使第一个示例像第二个示例一样工作。
关于javascript - 在 JavaScript 实例上编写单个原型(prototype)与使用多个原型(prototype)之间的区别?只是风格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16267034/