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 协议 ,转载请注明出处!