JavaScript中函数的定义以及使用

                                                  JavaScript中函数的定义以及使用

一、函数的定义

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

二、函数的3种声明方式

       1.普通的函数声明

         

        2.使用变量初始化函数

         

         3.使用function构造函数

          

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

 

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

       1.arguments.callee方法

        具体的使用方法如下

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

      


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

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

         

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

       1.window关键字

          (1)方式一

          代码部分:

        

          运行结果:

         

          (2)方式2

          代码部分:

         

          运行结果:

         

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

       2.this关键字

          代码部分;

          

          运行结果;

          (1)

         

          (2)

          

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

     3.call方法和apply方法

        代码部分; 

       

       运行结果;

      

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

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

        代码部分;

       

        运行结果;

        (1)

         

        (2)

         

        (3)

         

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







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值