我所理解的函数方法call和apply

原创 houjinlong 随笔 js 333阅读 2017-05-17 16:01:00 举报

首先要知道call和apply是Function的方法,他的第一个参数是this,第二个是Function的参数。比如你的方法里写了this,普通调用这个方法这个this可能是window。而如果你用了call,第一个参数写啥,里面的this就是啥!

下面通过一个小实例来理解上面这段:javascript 代码

其次知道call和apply的用法:
[blockquote] obj.call(thisObj, arg1, arg2, ...);
obj.apply(thisObj, [arg1, arg2, ...]);
两者作用一致,都是把obj(即this)绑定到thisObj,这时候thisObj具备了obj的属性和方法。或者说thisObj『继承』了obj的属性和方法
唯一区别是apply接受的是数组参数,call接受的是连续参数。[/blockquote]

再然后我们要来理解为什么要用call和apply,还是一段小例子~( ̄▽ ̄)~( ̄▽ ̄)~爽到不行~javascript 代码

最后怎么用(这才是最关键的):

看了到这我们首先得明白call和apply的作用(当一个object没有某个方法,但是其他的有,我们可以借助call或apply用其它对象的方法来操作。 )具体怎么做到的呢?其实刚开始咱们就提到了,动态改变this指向 ,有木有发现一件事咋们在创建函数时是同过this来给它绑定属性和方法的,这时很关键的一点,call和apply的第一个参数是this,通俗的说第一个参数写谁,被call和apply函数的this就指向谁,通过这样就给这个谁绑定了属性和方法!
call和apply的优秀例子javascript 代码

javascript 代码

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

赶紧努力消灭 0 回复