javascript - JS - 定义原型(prototype)方法

标签 javascript

<分区>

这种语法有区别吗

function Foo() {}

Foo.prototype.method1 = function() {};
Foo.prototype.method2 = function() {};

还有这个?

function Foo() {}

Foo.prototype = {
    method1: function() {},
    method2: function() {}
}

应该优先选择一个吗?

最佳答案

这两个选项之间存在细微差别。我建议使用前者来保留指向用于创建对象的实际构造函数的 constructor 属性。在以下示例中,您将看到这两个选项的本质区别:

  • Foo 使用了 prototype.newMethod 语法。
  • Bar 使用了 prototype = {...} 语法。

Difference between extending the prototype and assigning an object to it

如果您想使用 Bar 语法,您始终可以将 constructor 属性设置为正确的函数。

希望对您有所帮助,如果您有任何疑问,请告诉我。

关于javascript - JS - 定义原型(prototype)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47981755/

相关文章:

javascript - Cypress :找不到模块:错误:无法解析'cypress/types/lodash

javascript - WordPress 将 javascript 添加到 native WordPress 帖子/页面编辑器

javascript - 如何让 'button' 在 MouseDown 上创建一个可移动的 DIV,并将 'MouseDown' 切换到新的 DIV?

javascript - Node.js发送带base64解码字符的POST请求时,出现无效字符错误

javascript - 在 NodeJs 上导入 Box2d 时出错

javascript - 仅在禁用 JavaScript 时显示 "Enable JavaScript"消息

php - 使用 php curl 获取 outlook 通讯簿列表?

javascript - 如何将一个数组合并到另一个数组的对象值中

javascript - 如何将数组中对象的值添加到另一个数组中的另一个对象?

javascript - abort() 在 chrome 中触发 Error Undefined