javascript中的call(),apply(),bind()方法的区别
Posted 幽梦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript中的call(),apply(),bind()方法的区别相关的知识,希望对你有一定的参考价值。
之前一直迷惑,记不住call(),apply(),bind()的区别。不知道如何使用,一直处于懵懂的状态。直到有一天面试被问到了这三个方法的区别,所以觉得很有必要总结一下。
如果有不全面的地方,后续再进行补充。
1. 改变this的指向
由例子可以看出,apply,call,bind都对this进行了重定向,apply和call使用方法相同。但是bind后面多了个(),因为bind返回的是一个全新的函数,但是三个返回结果一致。
2. 传参情况不同
可以发现:apply参数传递用数组,并且在方法中会自动匹配参数
call参数传递是直接放进去,每个参数之间用逗号隔开
apply如果用和call类似的传递参数的方法,则在方法中会自动匹配参数。若像apply一样传递参数,则会把整个数组 当作一个参数传递进去。
以上是关于javascript中的call(),apply(),bind()方法的区别的主要内容,如果未能解决你的问题,请参考以下文章