JavaScript中call、apply、bind的使用
作用
call、apply、bind都是用来重定义this这个对象的。
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
它们之间主要的差异:
call()的参数是一个参数列表由逗号分隔的,返回值是该函数的返回值。如果没有返回值,则返回undefined。 obj.foo.call(data,1,2….);
apply()的所有参数都是放在一个数组内的,与call()方法类似,区别是call()接受的是参数列表,而applu()接受的是一个参数数组。 obj.foo.apply(data,[1,2,…]);
bind()的返回是函数,参数和call()一样
例子
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!