在每行中添加原型函数而不使用.prototype =

时间:2019-01-01 12:56:32

标签: javascript extend phaser-framework

我想知道是否有任何方法可以添加原型函数而无需在每一行中使用.prototype=

这是当前代码:

Fruit= function( x, y, settings) {
    Phaser.Sprite.call(this,game,x,y, 'fruit');
    game.add.existing(this);
};

Fruit.prototype.basic= function() {}

Fruit.prototype = Object.create(Phaser.Sprite.prototype);
Fruit.prototype.constructor = Fruit;

//I find that writing function in the following way is very hard to focus and find what I need immediately

Fruit.prototype.move= function() {

};

Fruit.prototype.fall= function() {

};

我想以此方式编写代码,但我需要继承原始的Phaser原型。在我仍然可以继承Phaser.Sprite.prototype的同时,我可以通过以下方式编写代码吗?

Fruit.prototype = {
    move: function () {
    },
    fall: function () {
    }
}

只要我可以用这种方式写就可以了:

move: function () {
},

fall: function () {
}

谢谢

1 个答案:

答案 0 :(得分:2)

据我所知,您想一次将一组新方法从一个对象应用于一个原型对象。

您可以通过Object.assign()进行此操作:

Object.assign(Fruit.prototype, {
    move: function () {
    },

    fall: function () {
    }
});

这会将第二个参数到第n个参数的所有属性添加到传递给assign()的第一个参数中的对象。