プロトタイプのインスタンスを2つ作成し、プロトタイプの関数を変更し、両方のインスタンスに反映された変更(Great)を作成しました。 しかし、関数を削除してプロトタイプを変更しても、その関数は既存のインスタンスにはまだ存在していました。予想通り Javascript:プロトタイプの変更は既存のインスタンスには影響しません
function A() {
this.name = "cool";
}
A.prototype = {
howCool: function() {
return this.name + "er";
}
};
var a1 = new A(),
a2 = new A();
a1.name = "hot";
//line1
console.log(a1.howCool());
//line2
console.log(a2.howCool());
A.prototype = {};
//line3
console.log(a1.howCool());
//line4
var a3 = new A();
console.log(a3.howCool());
ライン1及び2は、作業しているとバック空にprotoypeを設定した後、ライン4が予想される未定義を示しています。 3行目はまだ関数定義を示しています。
あなたはプロトタイプオブジェクトを変更していないので、新しいオブジェクトを作成しています。 – Bergi
[instanceof'](http://stackoverflow.com/q/14568239/1048572)と[Javascriptプロトタイプを正しく定義する方法](http://stackoverflow.com/q/17474390/)と同じ混乱も参照してください。 1048572) – Bergi
実際に、新しいオブジェクトに対してprototypeプロパティを再割り当てしました。古いものはまだ存在します。 – abhishekkannojia