JavaScript之调用函数的方式

来源:互联网 发布:淘宝怎么玩赚钱 编辑:程序博客网 时间:2024/06/06 01:45

1. 直接调用函数

直接调用函数是最常见、最普遍的方式。这种方式以函数附加的对象作为调用者,在函数后括号内传入参数来调用函数。例如下面的代码:

//调用window对象的alert方法window.alert(“测试代码”);//调用p对象的walk方法p.walk()

当程序使用window对象来调用方法时,可以省略方法前面的window调用者。

2. 以call()方法调用函数

直接调用函数的方式简单、易用,但这种方式不够灵活。有时候调用函数时需要动态地传入一个函数引用,此时为了动态地调用函数,就需要使用call方法来调用。

<script type="text/javascript">// 定义一个each函数var each = function(array , fn){for(var index in array){// 以window为调用者来调用fn函数,// index、array[index]是传给fn函数的参数fn.call(null , index , array[index]);}}// 调用each函数,第一个参数是数组,第二个参数是函数each([4, 20 , 3] , function(index , ele){document.write("第" + index + "个元素是:" + ele + "<br />");});</script>

不难看出,call()函数的格式是:

函数引用.call(调用者,参数1,参数2)

执行结果是:

3. 以apply()方法调用函数

apply()方法与call()方法的功能基本相似,它们都可以动态地调用函数。apply()与call()的区别如下:

1)        通过call()调用函数时,必须在括号中详细地列出每个参数

2)        通过apply()动态地调用函数时,可以在括号中以arguments来代表所有参数

<script type="text/javascript">// 定义一个函数var myfun = function(a , b){alert("a的值是:" + a+ "\nb的值是:" + b);}// 以call()方法动态地调用函数myfun.call(window , 12 , 23);var example = function(num1 , num2){// 直接用arguments代表调用example函数时传入的所有参数myfun.apply(this, arguments);}example(20 , 40);// 为apply()动态调用传入数组myfun.apply(window , [12 , 23]);</script>

运行结果:

     



0 0
原创粉丝点击