call 和 apply 区别

作用一样,将调用的函数this的指向绑定输入的第一个参数,仅仅是参数不同。

注意:call()方法的作用和 apply() 方法类似,区别就是call()方法接受的是参数列表,而apply()方法接受的是一个参数数组。
call(): call(thisArg: any, ...argArray: any[]): any
apply(): apply(thisArg: any, argArray?: any): any

     function test(a,b){
         console.log(this.name);
         console.log(a+b);
     }

     const xiaomi={name:"小明"};               
     const xiaohong={name:"小红"};    
     const args=[1,2];

     //输出 小明 3
     test.call(xiaomi,...args); //此处是 es6 写法,等价于 test.call(xiaomi, 1, 2)
     //输出 小红 3       
     test.apply(xiaohong,args);              
原文地址:https://www.cnblogs.com/panshaojun/p/14716753.html