| 今回は、JavaScriptで継承のようなことをやってみます。 |
| prototypeにぶち込んでみる |
function Main1(){
var a=function(){
this.x=0;
};
var b=function(){
this.y=0;
};
b.prototype=new a;
var c=new b;
alert(c.x);
alert(c.y);
alert(c.constructor);
} |
| まさかの展開です。c.yはちゃんと定義されているのに(この点も多少謎ですが)、 c.constructorはa、という…? 確かに継承っぽいことが出来ているようです。ちなみに、 b.prototype=a;とすると、変なことになります。 |
| こういうやり方はどうでしょうか。 |
function Main2(){
var a=function(){
this.x=0;
};
var b=function(){
var t=new a();
t.y=0;
return t;
};
var c=new b;
alert(c.x);
alert(c.y);
alert(c.constructor);
} |
| これだって立派な「継承っぽいもの」だと思いますが。 これは前回の実験とも関連していて、var c=new bはvar c=b()としても同じです。 |
| top 戻る |