大家,这两天看了与DCI相关的文章,写了这么个测试程序,请指正。
//ppt function Player(name) { this.name = name; } Player.prototype.sayHello = function() { return '大家好,我是' + this.name; } //role function Fighter(player) { for (var i in player) { this[i] = player[i]; } } Fighter.prototype.attack = function(fighter) { console.log(this.name + ' 攻击了 ' + fighter.name); return this.name + ' 胜利了'; } //mi function FightingContext(fighters) { this.attacker = arguments[0]; this.defender = arguments[1]; console.log(this.attacker.sayHello()); console.log(this.defender.sayHello()); } FightingContext.prototype.interation = function(callback) { console.log(this.attacker.name + ' 加入了战斗'); console.log(this.defender.name + ' 加入了战斗'); var res = this.attacker.attack(this.defender); callback(res); }; //fighting var p1 = new Player('first player'); var p2 = new Player('second player'); var cxt = new FightingContext(new Fighter(p1), new Fighter(p2)); cxt.interation(function(res) { console.log('战斗结果:' + res); }); |
在node.js下运行输出结果:
大家好,我是first player
大家好,我是second player
first player 加入了战斗
second player 加入了战斗
first player 攻击了 second player
战斗结果:first player 胜利了