原型笔记(一)

         Person.prototype.name = "sunny";
                function Person () {
                }
                var person = new Person();
                Person.prototype = {
                    name : "cherry"
                }

Person的name最终为“sunny”,原因如下:

构造函数生成时,会在函数中隐式:

    function Person () {
        var this = {__proto__:Person.prototype}
                }

此时name为“sunny”已被储存在__proto__中

再更改

Person.prototype = {
                    name : "cherry"
                }

并不影响__proto__,因此Person.name输出为sunny。

整个过程简单举例就如下:

    Person.prototype = {name = "a"}
    __Proto__ = Person.prototype;
    Person.prototype = {name = "b"}

再简化概念就如下:

var a = 1;
var b = a;
a = 2;
console.log(b);

b必然是1

猜你喜欢

转载自www.cnblogs.com/oo5lll/p/12036561.html