1.直接调用
直接调用函数是我们平时使用JS函数最简单最直接的方法,举例如下:
window.alert("aaa");
这段代码将在浏览器中弹出文本为“aaa”的提示,通常,我们可以把JS中window对象的方法的“window.”省略掉,写成这样:
alert("aaa");
效果相同
2.通过call()调用
语法:函数引用.call(调用者,参数1,参数2,......,参数n)
由此得到直接调用函数与通过call调用函数的关系如下:
调用者.函数(参数1,参数2,...)=函数.call(调用者,参数1,参数2,...)
例如:
<script>
var A=function(a,b)
{
alert("a的值是:"+a+",b的值是:"+b);
}
A.call(window,1,2);//以window为调用对象,1、2为传入参数,调用A函数
</script>
浏览器将出现一个写着"a的值是:1,b的值是:2"的提示框
3.通过apply()调用
语法:函数引用.apply(调用者,[参数1,参数2,...])
由此可见,call()和apply()的关系如下:
函数引用.call(调用者,参数1,参数2,...)=函数引用.apply(调用者,[参数1,参数2,...])
例如:
<script>
var A=function(a,b)
{
alert("a的值是:"+a+",b的值是:"+b);
}
A.apply(window,[1,2]);//以window为调用对象,1、2为传入参数,调用A函数
</script>
call()和apply()调用的区别:
通过call()调用时必须在括号中详细地列出每个参数
通过apply()动态调用函数时,需要以数组形式一次性传入所有调用参数