call和apply都是为了改变某个函数运行时的上下文而存在的(也就是改变函数的this指向);
如果使用call/apply,那么this指向的是第一个参数,apply的第二个参数是一个参数数组,call的第二个及其以后的参数都是数组里面的元素,就是说要全部列举出来;
看到一个比较形象的表达方式:
foo.call(this,arg1,arg2,arg3) == foo.apply(this, arguments)==this.foo(arg1, arg2, arg3)
call和apply都是为了改变某个函数运行时的上下文而存在的(也就是改变函数的this指向);
如果使用call/apply,那么this指向的是第一个参数,apply的第二个参数是一个参数数组,call的第二个及其以后的参数都是数组里面的元素,就是说要全部列举出来;
看到一个比较形象的表达方式:
foo.call(this,arg1,arg2,arg3) == foo.apply(this, arguments)==this.foo(arg1, arg2, arg3)