共同作用:call和apply 都是用来修改函数中this的指向问题。可以用来代替另一个对象调用一个方法,将一个函数的对象上下文从初始的上下文改变为由thisObj指定的新对象。
apply:调用一个对象的一个方法,用另一个对象替换当前对象。例如:object1.function.apply(object2, arguments);即object2对象应用object1对象的function方法。
call:调用一个对象的一个方法,用另一个对象替换当前对象。例如:object1.function.apply(object2, args1,args2);即object2对象应用object1对象的function方法。
不同点:入参不同。apply只能两个,新的obj和一个数组arg。call可以多个,新的obj和arg1,arg2…
apply的arg如果不是一个array,会报typeerror。apply和call都不传新obj,则会去找全局的thisObj。