DRYな備忘録

Don't Repeat Yourself.

memo : 俺々extendsを作りたいわけだ

参照渡し、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]