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的主要内容,如果未能解决你的问题,请参考以下文章