向JavaScript原型添加多个方法?

Mar*_*tin 3 javascript prototypal-inheritance prototype-programming

我试图找出是否有可能和缺点,例如将对象添加到原型

myObject.prototype = {

    init: function () {

    },

    runMe: function () {

    },

    removeItems: function () {

    }
}
Run Code Online (Sandbox Code Playgroud)

这实际上合法吗,分别进行每个操作有什么区别,即

myObject.prototype.init = function () {}

myObject.prototype.runMe = function () {}
Run Code Online (Sandbox Code Playgroud)

我尝试查找有关添加为对象的MDN文档,但找不到任何内容。谁能评论推荐的方法?

JLR*_*she 5

每种方法都不错,您应该选择任一种方法都可以使您更轻松地执行自己的工作。如果这是您唯一修改原型的地方,那么唯一有意义的区别就是第一种方法会消除constructor默认情况下会原型上的属性。

因此,如果要覆盖整个prototype,则应确保重新添加其构造函数:

myObject.prototype = {

    init: function () {

    },

    runMe: function () {

    },

    removeItems: function () {

    },
    // right here
    constructor: myObject
}
Run Code Online (Sandbox Code Playgroud)