js高级第二天
原型
每个构造函数都会有一个默认关联的对象,这个对象就是构造函数的原型
这个构造函数的实例,都可以访问这个构造函数原型中的成员
- 对象所能访问的原型是创建这个对象时,构造函数所指向的原型
相关属性
- 构造函数.prototype:获取构造函数的原型
- 对象.___proto__可以获取原型
- 原型的constructor可以获取构造函数
应用:全局使用,为某一类对象添加公共的成员
注意细节:对象所有访问的原型是创建这个对象时构造函数所指向的原型,建议后期操作原型使用点语法
原型链:原型是一个对象,对象又有原型,组成原型链
- 属性查找规则:自己没有,就找原型,一直找到Object,如果还没有就报错
作用域和作用域链
let的作用域是创建let变量开始到它所在的结构的 } 结束
函数内部可以访问函数外部的成员,当查找一个属性的时候,先找自身的作用域,如果没有查找上一级作用域,一直到顶级作用域,如果还没有就报错
函数四种调用模式
函数调用模式
方法调用模式
构造函数调用模式
上下文调用模式
- call
- apply
- bind
this的指向
函数调用模式
- window
方法调用模式
- 调用方法的对象
构造函数调用模式
- 创建的对象
上下文调用模式
- 传入的 对象