参照渡し、shallow copy 調べたら Fuga =
いらないハズ _.extend(Fuga, Hoge);
だけでいけるのでは
[3:57:11] ➜ cat sample.js var _ = { extend : function(func1, func2){ func1.prototype = Object.create(func2.prototype); func1.prototype.constructor = func1; return func1; } }; var Hoge = function(){}; Hoge.prototype.fuck = function(){ console.log("fuck!!"); }; var Fuga = function(){ this.f = true; }; /* この代わりに_.extend Fuga.prototype = Object.create(Hoge.prototype); Fuga.prototype.constructor = Fuga; */ Fuga = _.extend(Fuga,Hoge); Fuga.prototype.shit = function(){ console.log("shit!!"); }; var fuga = new Fuga(); fuga.shit(); fuga.fuck(); [3:57:15] ➜ node sample.js shit!! fuck!! [3:57:19] ➜