美文网首页
call bind apply

call bind apply

作者: 饥人谷__冯国欣 | 来源:发表于2019-06-05 21:47 被阅读0次

call

call方法的第一个参数是要绑定给this的值,后面传入的是一个参数列表。当第一个参数书null,undefined的时候,默认传给window.可以看个例子

apply

apply和call一样,第一个参数和call一样,后面传入的 参数必须要是参数数组。当第一个参数书null,undefined的时候,默认传给window。apply的例子是这样的

可以看到,obj 是作为函数上下文的对象,函数 getName 中 this 指向了 obj 这个对象。参数 firstName 和 lastName 是放在数组中传入 getName 函数。

bind

bind 方法不会立即执行,而是返回一个改变了上下文 this 后的函数。而原函数 printName 中的 this 并没有被改变,依旧指向全局对象 window。

总结

call()、apply()和bind()都是用来改变函数执行时的上下文,可借助它们实现继承;call()和apply()唯一区别是参数不一样,call()是apply()的语法糖;bind()是返回一个新函数,供以后调用,而apply()和call()是立即调用。

相关文章

网友评论

      本文标题:call bind apply

      本文链接:https://www.haomeiwen.com/subject/cvqexctx.html