[JS]15.原型和原型链
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__

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