오브젝트의 상속 (프로토 타입을 링크)을 구축했다면 브라우저가 해당 오브젝트에 대한 참조를 사용한다고 생각하지 않습니다.
EX1 :
var a = function(){};
a.prototype.toString = function(){return "I'm an A!";};
var b = new a();
a = undefined;
var c = new a();// error => a is not a function any more!
b.toString();// it works because the prototype is not destroyed,
// only our reference is destroyed
EX2 :
var a = function(){};
a.prototype.toString = function(){return "I'm an A!";};
var b = function(){};
b.prototype = new a();
a = undefined;
var c = new b();
console.log(c+'');// It still works, although our
// initial prototype `a` doesn't exist any more.
UPDATE : 이 동작은 자바 스크립트 정확하게 물체를 파괴 할 수 있다는 사실과 관련이있을 수 있습니다 ; 당신은 그것에 대한 모든 참조만을 제거 할 수 있습니다. 그런 다음 브라우저는 참조되지 않은 객체를 처리하는 방법을 Garbage collector으로 결정합니다.
다른 자바 스크립트 엔진이 프로토 타입을 구현하는 방법을 실제로 모르지만, 객체에 대한 ** 참조 **와 같지 않습니다. 이것은 상속 메커니즘과 비슷하기 때문에 obj1의 인스턴스 **가 obj2가 존재하는 데 필요하다면 놀랄 것입니다. –