和call方法一样,都是把函数执行,并且改变里面的this关键字,唯一的区别就是传递给函数参数的方式不同
- call是一个一个传参
- apply是按照数组传参 ```javascript let obj = {name:’obj’}; let fn = function(){ console.log(this.name); } // 让fn执行,让方法中的this执行obj,并且传递10,,20 fn.call(obj,10,20); fn.apply(obj,[10,20]);
``` 因为apply改变了参数的传入形似,将参数以数组的形式进行传递(实参),但是函数如果写参数,就必须和数组的长度相等,因为形参中如果要接收实参的数组,数量必须保持一致,如果不传递参数,又因为函数中有arguments类数组的方法,我们可以来接收这个数组