Function.applyを使って、クラスをMix-in
Firebugのコードを読んでから、apply廚になりはじめている。
var Foo = function() { this.name = "Foo"; this.foo = "foo"; this.hage ="foo"; } var Bar = function() { this.name = "Bar"; this.bar = "bar"; this.hage = "bar"; } var Hoge = function() { this.name ="Hoge"; } new Hoge(); // Object name="Hoge" Foo.apply(Hoge.prototype); new Hoge(); // Object name="Hoge" foo="foo" hage="foo" Bar.apply(Hoge.prototype); new Hoge(); // Object name="Hoge" foo="foo" hage="bar" bar="bar"
逆にMix-inさせたくなければ、クラス定義を
var Foo = function(){} Foo.prototype.name = "Foo";
という感じで、空Function+prototypeでやればOK。
applyちょう便利!