0
私はこれを理解するのに苦労します。 javscriptのスニペットはオブジェクト内のオブジェクトを使用したJavascriptプロトタイプ継承
TEST=function(){};
TEST.prototype={
b:{
b1:"",
b2:{}
}
};
//Instance 1
var first=new TEST();
first.b.b1="TEXT";
//Instance 2
var second=new TEST();
console.log("Result",second.b.b1);
"TEXT"と出力します。だから私はなぜこの結果を得るのだろうと思っています。なぜ新しいインスタンスを作成して値を設定するときに、それが "TEST"プロトタイプ(主な問題です)を変更するのですか?
私はBergiとMykola(ありがとう)と複写の助けを得ました。しかし、私はまだこの振る舞いによってリソースを失ったと思って、それがなぜこのように構築されているのだろうと思っていますか?インスタンスで作業するときにプロトタイプを更新する必要はありません。
ありがとう、私は私のコンストラクタを再構築します。しかし、なぜfirst.b.b1と最初の.__ proto __。b.b1とwindow.TEST.prototype.b.b1が同じであるのかという論理を理解できませんか? – Oddis
@Oddisオブジェクトが1つしかないので、 'TEST.prototype.b'と' first.b'と 'second.b'はすべてそれを指しています – Bergi
BergiとMykolaのおかげで、私はそれを受け入れます。しかし、私はこの動作によってリソースを失ったと思う。再度、感謝します。 – Oddis