JavaScript 原型链变化,为什么导致变量跟着变化? 财富值33

2016-10-18 17:41发布

不知为啥,当代码执行了倒数第二行 C.prototype = b; 之后,变量 b 的值也随之改变了,第一次输出 B {y: 2},第二次输出 A {y: 2},请 JavaScript 大牛帮忙解答一下。代码如下:

(function() {    function A(x) {     this.x = x;   }    function B(y) {     this.y = y;   }    function C(z) {     this.z = z;   }    var a = new A(1);   B.prototype = a;    var b = new B(2);   console.log(b);    // B {y: 2}    C.prototype = b;      console.log(b);    // A {y: 2}  }());

下图为 Chrome 控制台调试过程:

原问题为:请问chrome中console.log打印的对象名是指向哪里?

2条回答

感觉像 chrome的bug Safari没有这个问题

b并没有变

一周热门 更多>