1. 函数模式
// this 指向 window 全局对象
2. 方法模式
// this 指向调用这个方法的对象
3. 构造函数模式
// this 指向 new 新创建出来的实例
4. 上下文模式
//在上下文调用模式中,可以修改 this 的值,也就是可以修改函数的调用方法。
//使用下面两种方法,可以修改函数调用上下文,也就是 this 的值。
1. apply:函数.apply(对象,[]);(第一个参数是把 this 修改成的对象)。
2. call:函数.call(对象,arg1,arg2,arg3……)。
//apply 和 call 的区别:
当函数需要参数的时候,apply 是用数组进行参数的传递,call 是使用单个的参数进行传递。
apply 用于函数的形参个数不确定的情况,
call 用于确定了函数的形参个数的情况下使用。