JavaScript中函数的定义以及使用

                                                  JavaScript中函数的定义以及使用

一、函数的定义

       函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。JavaScript 函数语法,函数就是包裹在花括号中的代码块,前面使用了关键词 function: 当调用该函数时,会执行函数内的代码。可以在某事件发生时直接调用函数(比如当用户点击按钮时),并且可由 JavaScript 在任何位置进行调用

二、函数的3种声明方式

       1.普通的函数声明

          JavaScript中函数的定义以及使用

        2.使用变量初始化函数

          JavaScript中函数的定义以及使用

         3.使用function构造函数

          JavaScript中函数的定义以及使用

           不推荐使用第3种方法初始化一个函数,因为系统会进行俩次解析,影响性能。

 

三、function函数中的几个常用方法

       1.arguments.callee方法

        具体的使用方法如下

        首先我们写一个递归函数如下;

       JavaScript中函数的定义以及使用


         从以上代码我们可以看出,我们在每次调用sum方法的时候当传递的参数>1的时候,代码每次都会调用自己本身直到传递的参数<=1为止,虽然我们可以通过调用自己的函数名称来完成调用,但是当我们多次调用本身函数的时候,如果我们改变函数名称,那么调用的位置也需要改变,为了提高代码的维护性所以我们可以通过调用arguments.callee方法来实现以上操作。

        使用arguments.callee的方法代码如下;

         

       在说明其它函数之前先说明下在JavaScript中window关键字与this关键字

       1.window关键字

          (1)方式一

          代码部分:

         JavaScript中函数的定义以及使用

          运行结果:

          JavaScript中函数的定义以及使用

          (2)方式2

          代码部分:

          JavaScript中函数的定义以及使用

          运行结果:

          JavaScript中函数的定义以及使用

          从上面的运行结果我们可以看出number是全局变量,而这个变量又是window的属性,window是最大的属性。

       2.this关键字

          代码部分;

          JavaScript中函数的定义以及使用

          运行结果;

          (1)

          JavaScript中函数的定义以及使用

          (2)

          JavaScript中函数的定义以及使用

         从运行结果我们可以看出第一次打印出的结果中this调用的全局变量中的number,第二次调用num变量中的showNumber函数所打印出的结果this调用的是num对象中的number属性得值。

     3.call方法和apply方法

        代码部分; 

        JavaScript中函数的定义以及使用

       运行结果;

       JavaScript中函数的定义以及使用

         从上面运行结果我们可以看出apply方法可以冒充add方法进行俩个数相加操作,在这里apply方法中传递的俩个参数,this表示window的作用域,[]表示数组参数。call也可以实现这一功能只不过传递参数的方式略有不同,第二个参数不是数组而是变量值比如在apply方法中传入的值为[number1,number2]在call方法中传入的就是number1,number2.

        上面的代码是apply方法和call方法的一种使用形式,但apply方法和call方法还存在着另一种使用方式并且更加重要。apply方法和call方法还可以改变变量的作用域。

        代码部分;

        JavaScript中函数的定义以及使用

        运行结果;

        (1)

          JavaScript中函数的定义以及使用

        (2)

          JavaScript中函数的定义以及使用

        (3)

          JavaScript中函数的定义以及使用

         从运行结果我们可以看出在我们没调用call方法和apply方法的时候运行的结果为121200,说明this引用的对象是全局对象中的number,当我们调用call方法和apply方法时运行的结果为121201,说明this引用的对象为num对象中的number属性 ,从以上结果我们可以看出apply方法和call方法不光可以冒充其他函数运行,还可以改变变量的作用域。