我正在尝试找到一种方法来合并或在类中添加模块的一些方法和属性。
function User(data){
this.name = data.name;
}
User.prototype.sayHello = function(){
return this.name+' says hello.';
}
module.exports = User;
例如,一旦加入游戏,我想向我的用户添加 Player 类中的一些属性和方法。
function Player(user){
this.chances = 3;
}
Player.prototype.run = function(){
return this.name+' is running.';
}
我尝试使用子类,但我丢失了用户的所有参数,并且只有玩家的参数。我想做这样的事情:
var user = new User({name:Jacques});
user.sayHello() // Jacques says hello.
user.becomePlayer();
user.run(); // Jacques is running.
或者是否可以向用户变量添加属性和方法?
user.becomePlayer() // user now can run.
最佳答案
如果你想在对象 user 上添加一个方法,你可以这样做:
User.prototype = {
sayHello : function(){
return this.name+' says hello.';
},
becomePlayer: function () {
//do some thing
}
}
如果用户想访问播放器的方法,可以使用继承( 原型(prototype)链继承):
User.prototype = new Player();
var user = new User({name: 'Jacques'})
console.log(user.run());//Jacques is running.
关于javascript - 如何合并实例中的模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46209175/