直接看代码吧:
      //写法一
function A(){}
var s = new A();
A.prototype.title = "123";
alert(s.title);//"123"
//写法二
function A(){}
var s = new A();
A.prototype = {
    title : "123"
};
alert(s.title);//undefined
//写法三
function A(){}
A.prototype.title = "123";
var s = new A();
A.prototype.title = "321";
alert(s.title);//"321"
//写法四
function A(){}
A.prototype = {title:"123"};
var s = new A();
A.prototype = {title:"321"};
alert(s.title);//"123"
    
    说明什么问题?
我的理解是在调用new操作符时,实例化的对象的__proto__是指向构造函数的prototype 当前 指向的对象,也就是说下一次实例化之前如果改变构造函数的prototype指向,那么下次实例化出来的对象的__proto__的指向也会跟随构造函数的prototype指向一同改变。有点像C语言里的指针传指针。如下图所示:


 
       
					 
					