apply/call/bind之间的区别

原创 夏天不做梦 随笔 JavaScript 392阅读 2017-06-26 16:52:40 举报

apply 方法

先说 apply 方法,它让我们构造一个参数数组传递给函数,同时可以自己来设置 this 的值。
apply 函数接收 2 个参数,第一个是传递给调用这个方法的函数绑定的this 取值,第二个是传递给函数的参数数组。
看代码
javascript 代码

这样函数a就给对象o添加了一个属性。
如果apply的第一个参数传递 null,那么在函数 a 里面 this 指针依然会绑定全局对象

call 方法

call()和apply()的区别只是第二个参数的形式改变仅此而已
看代码
javascript 代码

bind()

最后再来说 bind() 函数,上面讲的无论是 call() 也好, apply() 也好,都是立马就调用了对应的函数,
而 bind() 不会, bind() 会生成一个新的函数,bind() 函数的参数跟 call() 一致,
第一个参数也是绑定 this 的值,后面接受传递给函数的不定参数。
bind() 生成的新函数返回后,你想什么时候调就什么时候调,看下代码就明白了
javascript 代码

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复