javascript中的call()方法与apply()方法 是函数的内置方法,所有的函数都具有这两个方法。这两个方法是通过函数名来调用的。这两个方法的作用是:传递一个对象作为参数,这个对象来调用这个函数。
下面来看一下call():
例:有一个函数:
我们定义了这个函数。同时,这个函数中已经有了call(),这个方法,此时可以调用了:
先解释一下参数: [color=blue]obj[/color]:是一个对象 [color=blue]2和5[/color]:是函数test的两实参
这段代码代表了一个对象obj调用了test这个函数。它将test函数作为对象obj的一个方法来调用了。把它翻译成java代码或许好理解一些:obj.test(2,5);
可以看到,函数test是作为obj对象的方法被调用了。此时,函数test中的this代表的是obj这个对象。此方法经常用在子类构造方法中,在继承父类时,来调用父类的构造函数。
apply()方法与call()方法类似,只是将函数test的所有的参数放在一个数组中而已。即:apply()方法只有两个参数,一个是obj对象,另一个是数组,这个数组中存放的是test函数的所有实参。例:
下面来看一下call():
例:有一个函数:
function test(x,y){
this.x=x;
this.y=y;
}我们定义了这个函数。同时,这个函数中已经有了call(),这个方法,此时可以调用了:
test.call(obj,2,5);//test函数调用call()方法
先解释一下参数: [color=blue]obj[/color]:是一个对象 [color=blue]2和5[/color]:是函数test的两实参
这段代码代表了一个对象obj调用了test这个函数。它将test函数作为对象obj的一个方法来调用了。把它翻译成java代码或许好理解一些:obj.test(2,5);
可以看到,函数test是作为obj对象的方法被调用了。此时,函数test中的this代表的是obj这个对象。此方法经常用在子类构造方法中,在继承父类时,来调用父类的构造函数。
apply()方法与call()方法类似,只是将函数test的所有的参数放在一个数组中而已。即:apply()方法只有两个参数,一个是obj对象,另一个是数组,这个数组中存放的是test函数的所有实参。例:
test.apply(obj,[2,5]);//调用apply()方法,只有两个参数
本文介绍了JavaScript中的call()和apply()方法。这两种方法用于传递一个对象作为参数来调用函数,并改变函数内部this的指向。call()直接列出参数,而apply()则接收一个参数数组。

被折叠的 条评论
为什么被折叠?



