JavaScript中的Function(函数)对象

  • JavaScript中的Function(函数)对象

    JavaScript中的Function对象是函数,函数的用途分为3类:

    作为普通逻辑代码容器;

    作为对象方法;

    作为构造函数。

    1.作为普通逻辑代码容器

        
        
    1. functionmultiply(x,y){  
    2. returnx*y;  

    函数multiply封装了两位数的乘法运算公式:

        
        
    1. varproduct=multiply(128,128);//product=16384 
    2.  

    创建函数实例的方式有3种。第一种是声明式,即像声明变量一样,将通过function(){}标识符创建的匿名函数直接赋值给变量,以该变量作为调用时的函数名称:

        
        
    1. varmultiply=function(x,y){  
    2. returnx*y;  

    第二种是定义式,即以function关键字后跟函数名称及(){}来直接定义命名函数,前面第一个multiply函数就是通过定义式创建的。

    第三种是构造函数式,即通过new运算符调用构造函数Function来创建函数。这种方式极不常用,因此就不作介绍了。

    在创建函数的3种方式中,声明式和定义式还存在细微的差别。比如下列代码中的函数采用声明式:

        
        
    1. varexample=function(){  
    2. return1;  
    3. }  
    4. example();  
    5. varexample=function(){  
    6. return2;  
    7. }  
    8. example();  
    9.  

    执行结果如下:

        
        
    1. 1  

    而如果采用定义式,即:

        
        
    1. functionexample(){  
    2. return1;  
    3. }  
    4. example();  
    5. functionexample(){  
    6. return2;  
    7. }  
    8. example(); 

    那么会得到另一种结果:

        
        
    1. 2  

    即,在采用定义式创建同名函数时,后创建的函数会覆盖先创建的函数。这种差别是由于JavaScript解释引擎的工作机制所导致的。JavaScript解释引擎在执行任何函数调用之前,首先会在全局作用域中注册以定义式创建的函数,然后再依次执行函数调用。由于注册函数时,后定义的函数重写了先定义的函数,因此无论调用语句位于何处,执行的都是后定义的函数。相反,对于声明式创建的函数,JavaScript解释引擎会像对待任何声明的变量一样,等到执行调用该变量的代码时才会对变量求值。由于JavaScript代码是从上到下顺序执行的,因此当执行第一个example()调用时,example函数的代码就是首先定义代码;而当执行第二个example()调用时,example函数的代码又变成了后来定义的代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值