apply和call

Posted Mr.方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了apply和call相关的知识,希望对你有一定的参考价值。

1、概述

Function.apply(obj,args)方法能接收两个参数
obj:这个对象将代替Function类里this对象
args:这个是数组,它将作为参数传给Function(args-->arguments)

Function.call(obj,[param1[,param2[,…[,paramN]]]])
obj:这个对象将代替Function类里this对象
params:这个是一个参数列表

(之前一直不理解,改变上下文作用域,现在理解了,this的指向)

 

2、apply和call的理解,

就是将Function里面的属性方法绑给obj因为改变了上下文,所以Function里面的this会指向obj(这个属性,会产生一些高级用法)

 

3、apply和call的区别

就是传参数的方式不同,你这样想,Function里面会接受参数,当obj继承了Function,那么Function里面有参数,那么

从那里传过来呢?那么只有arguments,有这么想,我有时想一整块(数组)传过去(apply),有时又想一个个的传(call

 

4、apply的一些特殊方式用法

因为apply可以传递数组(),那么就可以Math.max.apply(null,[paramN]);

 






以上是关于apply和call的主要内容,如果未能解决你的问题,请参考以下文章

js中callapply和bind到底有什么区别?

JavaScript实现callapply和bind

callapply和bind函数存在的区别

callapply和bind函数存在的区别

js中callapply和bind的区别

Javascript中callapply函数浅析