// time:2016.2.1// des:继承function Enemy() { this.level = 50; console.log("Enemy constructor"); }Enemy.prototype.attack_play = function(){ console.log("attack_play");};Enemy.prototype.wudiai = 100;Enemy.wudiai = "1213";Enemy.gongji = function(){ console.log("gongji asasasd "+ Enemy.wudiai);}function BossEnemy(){ Enemy.call(this); console.log("Boss constructor");}// 写法1// BossEnemy.prototype = {constructor: BossEnemy,};// for(var i in Enemy.prototype){// BossEnemy.prototype[i] = Enemy.prototype[i];// }// 写法2var a = function (){};a.prototype = Enemy.prototype;BossEnemy.prototype = new a();BossEnemy.prototype.boss_attack = function(){ console.log("boss_attack");};BossEnemy.staticFunc = function(){ console.log("staticFunc called!");};var bos = new BossEnemy();bos.boss_attack();bos.attack_play();BossEnemy.staticFunc();console.log("==========================");BossEnemy.prototype.attack_play = function(){ Enemy.prototype.attack_play.call(this); console.log("BossEnemy attack play!");}bos.attack_play();console.log("*****************************");// 写法三 js6class BingEnemy extends Enemy{ constructor(){ super(); this.flag = true; this.name = "通天教主"; this.level = 100; } static staticFunc(){ console.log("static func called!"); } get BingName(){ return this.name; } set BingName(value){ this.name = value; }};BingEnemy.haha ="123";let bing = new BingEnemy();console.log(bing);BingEnemy.staticFunc();bing.attack_play();console.log(bing.BingName);bing.BingName = "jade";console.log(bing.BingName);//console.log(BingEnemy.wudi);console.log("============================");