call
方法
call([thisObj[,arg1[, arg2[,…[,.argN]]]]])
调用一个对象的一个方法,以另一个对象替换当前对象。
call
方法可将一个函数的对象上下文从初始的上下文改变为由
thisObj
指定的新对象。如果没有提供
thisObj
参数,那么
Global
对象被用作
thisObj
。
说明白一点其实就是
更改对象的内部指针
,即
改变对象的
this
指向的内容
。这在面向对象的
js
编程过程中有时是很有用的。
call
函数和
apply
方法的第一个参数都是要传入给当前对象的对象,及函数内部的
this
。后面的参数都是传递给当前对象的参数。
运行如下代码:
<script>
var
func=
new
function
(){
this
.a=”func”}
var
myfunc=
function
(x){
var
a=”myfunc”;
alert(
this
.a);
alert(x);
}
myfunc.call(func,”var”);
</script>
可见
分别弹出了
func
和
var
。
//
先调用
func
函数,用
this.a=”func”
替换
myfunc
中的
this.a ;
然后将
”var”
传递给方法
myfunc
的参数
x
对于
apply
和
call
两者在
作用上
是相同的,但两者在
参数上
有区别的。
如
func.call(func1,var1,var2,var3)==func.apply(func1,[var1,var2,var3])