js call()与 apply()
1 定义 call 方法 语法:call(thisObj,参数1,参数2,。。。参数n)。参数为当前函数的参数 定义:调用一个对象的一个方法,以另一个对象替换当前对象。 如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。 apply方法 语法:call(thisObj,[参数1,参数2,。。。参数n]) 定义:应用某一对象的一个方法,用另一个对象替换当前对象。 说明: 如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。 如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。 区别:apply方法将所有参数放在一个数组上。数组可换为arguments 2.常用实例 1)普通函数 function a(x,y){ return x-y; } function b(x,y){ return x+y; } console.log(a.call(b,3,4));//控制台输出-1 console.log(b.call(a,3,4));/控制台输出7 说明:用a来替换b,即a.call(b,1,2)等于a(1,2) 2)工厂函数写法 function a(x,y){ this.x=x; this