call()和apply()
介绍
这两个方法都是函数对象的方法,需要通过函数对象来调用。
当函数调用call()和apply()时,函数都会立即执行。
都可以用来改变函数的this对象的指向。
第一个参数都是this要指向的对象(函数执行时,this将指向这个对象),后续参数用来传实参。
显式绑定this
JS提供的绝大多数函数以及我们自己创建的所有函数,都可以使用call 和apply方法。
它们的第一个参数是一个对象。因为你可以直接指定 this 绑定的对象,因此我们称之为显式绑定。
例1:
12345678910function foo() { console.log(this.a);}var obj = { a: 2};// 将 this 指向 objfoo.apply(obj); //打印结果:2
第一个参数的传递
1、thisObj不传或者为null、undefined时,函数中的this会指向window对象(非严格模式)。
2、传递一个别的函数名时,函数中的this将指向这个函数的引用。
3、传递的值为数 ...