一、call和apply定义。
1、Call
语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]])
参数 thisObj 可选项。将被用作当前对象的对象。 arg1, arg2, , argN 可选项。将被传递方法参数序列。
说明
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。
如果没有提供 thisObj 参数,那么 Global 对象被用作thisObj。
说明白一点其实就是更改对象的内部指针,即改变对象的this指向的内容。
这在面向对象的js编程过程中有时是很有用的。
2、Apply
语法:apply([thisObj[,argArray]])
定义:应用某一对象的一个方法,用另一个对象替换当前对象。
说明:
如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。
如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。
说的更直接点:就是在 thisObj这个方法中添加 发起 call 或者 apply 的 函数,并在 thisObj中执行这个函数,并且 this指针指向 thisObj。Call和Apply用法一样,只是传递的参数不一样。
二:Call的一个简单案例: