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]);

原文地址:https://www.cnblogs.com/founderswitch/p/7190349.html