js的事件中call、apply及bind方法

什么是call

call()是JavaScript中的一个方法,他的特点是可以自动执行函数,并改变this的指向,也就是通过 call(),您能够使用属于另一个对象的方法。
如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var person = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
var person1 = {
firstName:"Bill",
lastName: "Gates",
}
var person2 = {
firstName:"Steve",
lastName: "Jobs",
}
person.fullName.call(person1); // 将返回 "Bill Gates"

什么是apply()

apply与call()相似,也是自动执行函数,改变this的指向

什么是bind()

bind()与apply()及call()不相同的点是并不会自动执行,但是也是用于改变this的指向。