JavaScript中的每一个Function对象都有一个apply()方法和一个call()方法,它们的语法分别为:
1、 apply()方法
function.apply(thisObj[, argArray]) 2、call()方法
function.call(thisObj[, arg1[, arg2[, [,...argN]]]]);
定义:
apply:调用一个对象的一个方法,用另一个对象替换当前对象。例如:
B.apply(A, arguments);
即A对象应用B对象的方法。
call:调用一个对象的一个方法,用另一个对象替换当前对象。例如:
B.call(A, args1, args2);
即A对象调用B对象的方法。
3、共同之处
都可以用来代替另一个对象调用一个方法,将一个函数的对象上下文从初始的上下文改变为由thisObj指定的新对象”。
4、不同之处
apply:最多只能有两个参数——新this对象和一个数组argArray。
call:它可以接受多个参数,第一个参数与apply一样,后面则是一串参数列表。
实际上,apply和call的功能是一样的,只是传入的参数列表形式不同。