どこかで読み、同じものObject.__proto__
をObject.prototype
指し、Object.prototype
が標準的な方法ですが、昨夜、クラスを継承しようとしましObject.prototype
たが、うまくいきませんでした。 .驚いたことにObject.__proto__
Object.prototype
alert(Object.__proto__===Object.prototype);
アラートボックスに表示されるfalse
ので、どれが機能するかを理解するために、次のコードを書きました
function Cx(){
this.objName="i m X";
this.prototype={ };
this.prototype.getMyName=function (){
alert(this.objName);
}
this.__proto__={ };
this.__proto__.hMyName=function(){
alert("I am hMyName");
}
}
function InheritCx(){
//var y=new Cx();
this.objName="I am InheritCx";
this.__proto__=new Cx();
}
y= new InheritCx();
y.hMyName();//displayes "I am hMyName" in alertbox when using chrome or mozilla
y.getMyName();//displays an error in chrome and mozilla
2 つの違いは何ですか? 標準コードが機能しないのはなぜですか? さらに、ほとんどのブラウザー (IE 6-8、9、10、chrome、firefox、mozilla、opera、webkit) でプロトタイプの継承を機能させるにはどうすればよいか知りたいです。