如果不用中间变量,因为B.prototype = A.prototype,所以打印出来的A.prototype.name为B,因为都指向了同一个原型,所以当后来的B修改了name,A.prototype.name也就是"B",这是可以理解的:
令B.prototype = A.prototype
如果用了中间对象x,x就会继承A,那其实也是B.prototype继承A.prototype的一个实例,而不是像上面的共享:
原理可以从下面的基础例子中看到,A把在原型链上的name="a"共享出去,A的实例k1就得到了共享的name,如果给k1.name设置值b, k1.name的值就从a变成b,但不会修改k1的__proto__指针指向的A原型对象的name值