js原型

70 阅读1分钟

js高级第二天

原型

每个构造函数都会有一个默认关联的对象,这个对象就是构造函数的原型

这个构造函数的实例,都可以访问这个构造函数原型中的成员

  • 对象所能访问的原型是创建这个对象时,构造函数所指向的原型

相关属性

  • 构造函数.prototype:获取构造函数的原型
  • 对象.___proto__可以获取原型
  • 原型的constructor可以获取构造函数

应用:全局使用,为某一类对象添加公共的成员

注意细节:对象所有访问的原型是创建这个对象时构造函数所指向的原型,建议后期操作原型使用点语法

原型链:原型是一个对象,对象又有原型,组成原型链

  • 属性查找规则:自己没有,就找原型,一直找到Object,如果还没有就报错

作用域和作用域链

let的作用域是创建let变量开始到它所在的结构的 } 结束

函数内部可以访问函数外部的成员,当查找一个属性的时候,先找自身的作用域,如果没有查找上一级作用域,一直到顶级作用域,如果还没有就报错

函数四种调用模式

函数调用模式

方法调用模式

构造函数调用模式

上下文调用模式

  • call
  • apply
  • bind

this的指向

函数调用模式

  • window

方法调用模式

  • 调用方法的对象

构造函数调用模式

  • 创建的对象

上下文调用模式

  • 传入的 对象