Bootstrap

前端有趣的面试题-关于new的过程,指向

下面代码就是这个面试题,求打印的结果

		Test.prototype = {
            name: "zs"
        }
        function Test() {

        }
        let a = new Test()
        Test.prototype = {
            name: "lisi"
        }
        let b = new Test()
        console.log(a.name); // "zs"
        console.log(b.name);  // "lisi"

我这边解析一下这个代码
new 的过程中生成了 Test {} 对象这个对象可以 理解就是
注意一下是发生了对象覆盖的

{ name: "zs" } = a 这个实例
{name:  "lisi"} = b 这个实例
 		Test.prototype = {
            name: "zs"
        }
        function Test() {

        }
        let a = new Test()
        // 这个代码可以为 将之前的对象的name "zs" 改为 "lisi"
        Test.prototype.name =  "lisi"
        
        let b = new Test()
        console.log(a.name); // "lisi"
        console.log(b.name); // "lisi"
;