Добавить функцию-прототип без использования .prototype = в каждой строке - PullRequest
0 голосов
/ 01 января 2019

Я хотел бы знать, есть ли способ добавить функцию-прототип без использования .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 голосов
/ 01 января 2019

Насколько я понимаю, вы хотите применить набор новых методов из одного объекта к объекту-прототипу одновременно.

Вы можете сделать это через Object.assign():

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

    fall: function () {
    }
});

Это добавит все свойства от 2-го до n-го параметра к объекту в 1-м параметре, переданном assign().

...