js中的bind、call、apply

1.作用:
call、apply和bind是Function对象自带的三个方法,都是为了改变函数体内部 this 的指向,区别是call()和apply()在调用函数之后会立即执行,而bind()方法调用并改变函数运行时上下文后,返回一个新的函数,供我们需要时再调用。它们的第一个参数,都是指定一个运行时的上下文,也就是this的指向。bind,和call,指定this指向的参数后,可以加入多个参数,而apply则接受一个数组作为参数。
2.如何选用:
如果不需要关心具体有多少参数被传入函数,选用apply()。
如果确定函数可接收多少个参数,并且想一目了然表达形参和实参的对应关系,用call()。
如果我们想要将来再调用方法,不需立即得到函数返回结果,则使用bind()。

猜你喜欢

转载自blog.51cto.com/zhangzhao/2396834