call and apply 其实没有什么区别, 作用都是相同的,但是就是 有关一点 ,传的第二个参数形式有区别
首先看一下他们的作用:
function Class(){ this.name = 'Class'; this.getName = function(){ console.log(this.name); } } function ClassA(){ this.name = 'ClassA'; } var obj = new Class(); obj.getName.call(ClassA); // ClassA
看看就知道了, 这里面的输出是这个样子,
在看看他们的区别:
fun.call(fun1, var1, var2, var3) 而 apply 是这种 fun.apply(fun1, [var1, var2, var3])
apply 是第二个参数是数组的形式传入