[JS]15.原型和原型链

145 阅读1分钟

1. 基本概念

  • 函数数据类型包含
    • 普通函数
    • 箭头函数
    • 生成器函数
    • 构造函数(类)(Array -> 'Function', Object内置构造函数)
  • 对象数据类型包含
    • 普通对象
    • 数组对象
    • 正则对象
    • 日期对象
    • 实例也是对象(排除7种原始值类型的实例 Number)
      • 10是Number的一个实例,但是不是对象,仅仅是个数字
    • prototype / proto 原型属性也是对象(排除 Function.prototype)
  • 大部分函数,重点是构造函数,都内置一个prototype的原型属性,供当前类所属实例调用的公共方法
    • 箭头函数没有prorotype
    • 在原型对象prorotype上有一个内置的属性 constructor(构造器),属性值是当前函数本身
  • 每一个对象都内置一个__proto__属性,叫原型链,指向自己所属类的原型prototype
    • let xxx = {}; xxx.proto === Object.prototype // true
    • Object.prototype.proto // null, Object是所有对象的基类,没有__proto__

image.png

  • __proto__在IE中禁止访问,只能浏览器访问

image.png