一 函数调用
- 直接函数名调用
- 自调用
this 指向window
二 方法调用
- 对象.方法名
- 对象[方法名]
- 对象.对象.方法名等
this 指向宿主对象
三 构造器调用
- new 函数名
- new 对象.方法名
this 指向新new的对象(新的实例)
四 间接调用(apply/call)
call和apply是来自Function.prototype,因此呢,所有的函数都可以调用哦
-
call
- 1) 作用:调用函数,并且可以任意的指定函数运行时的this指向
- 2) 语法: 函数.call( 指定this,实参1,实参2,实参3…)
- 3) 解释: 第一个参数为this,后面就是传递给函数的实参啦 apply
- 1) 作用:调用函数,并且可以任意的指定函数运行时的this指向
- 2) 语法: 函数.call( 指定this,数组或者类数组)
-
3) 解释: 第一个参数为this,第二个参数apply会取出每一个值作为实参传递给函数
记得! call和apply指向谁就是谁,唯一的区别就是传参方式不同