o基础展示 codepen

    什么是原型?函数的一个名叫prototype的属性,值是一个对象{} .
    什么是原型链?对象上的proto属性组成的链条,值是一个对象{} .

    如果原型与原型链容易混淆,不如以后直接就叫它prototype proto .
    _
    proto 前后有两个抵杠有点像两条链子,访问当前对象的属性时,如果没有在它里面找到这个属性, 然后就会在当前对象的proto中查找,以此往上查找,找到会返回属性,没找到返回_undefined.
    _
    对象的
    proto__保存着该对象的构造函数的prototype,代码示例

    1. //伪代码
    2. person.__proto__ === Person.prototype
    1. //构造函数Test
    2. function Test(){};
    3. //构造函数上的prototype属性
    4. console.log(Test.prototype);
    5. //构造函数生成的test对象
    6. const test = new Test();
    7. //test对象的__proto__属性
    8. console.log(test.__proto__);
    9. //构造函数的prototype 等于 生成的对象的__proto__
    10. console.log(Test.prototype === test.__proto__);
    11. //prototype也是对象所以也有__proto__
    12. console.log(Test.prototype.__proto__ === Object.prototype);
    13. //Object的prototype上的__proto__为null
    14. console.log(Object.prototype.__proto__);

    用一张图表示,图片来自网络

    image.png

    todo…