JavaScript

JS中apply、call、bind的使用

字数:436    阅读时间:3min
阅读量:3019

所有函数或方法原型都是Function()函数的实例化对象;call()和apply(),bind()都是Function()上的方法,所以实例化的函数或方法都可以调用;他们都是用来改变this指向的;(在函数内部保存this指针,在需要的地方调用或者箭头函数都可以改变this的指向)

apply(),call()是函数调用的时候就立马改变this指向;而 bind方法会把要改变的this对象和参数值准备好,用到的时候再调用一下才行(在定时器中使用call、apply会首先调用一次,所以应该使用bind);apply的参数只能有两个第二个是要传的参数的数组,会默认一个一个展开传给函数;call有多个参数的时候只能一个一个 传进去,bind也要一个一个传

applay实现改变对象this指针的原理,就是改变对象的执行上下文环境位置。具体代码如下

野生小园猿
励志做一只遨游在知识海洋里的小白鲨
查看“野生小园猿”的所有文章 →

相关推荐