函数的运用

   在JavaScript里,函数也算是一种数据类型。不同于int、string、float等基本型,也不属于object等引用类型,函数,即function是一种特殊的对象。

一、函数的基本写法

      你可以把function当成如java中的方法一样。

1 function fun_name(){  
2        alert(1111);  
3     }</span>  

       调用它:

1 <script>  
2    window.onload=fun_name();  
3 </script>

     也可以当成一个普通的数据类型一般,赋给一个变量,

    1如:

1 <script>  
2     function fun_name(){  
3       alert(1111);  
4     }  
5     var fun =  fun_name();  
6 </script>

      2甚至也可以这样写:

1    <script>  
2         var fun = function(){  
3           alert(2);  
4         }  
5    </script>

     3你还能把function当成一个object,需要new之后,让系统分配给它一个内存之后才能使用它:

1 <script>  
2         function fun_name(arg){  
3             this.arg = arg;  
4             alert(this.arg);  
5         }  
6         var fun = new fun_name(2);  
7  </script>

    上面所说的3中方法,1就是我们常用的经典型,2我们则称之为函数字面量3我们就以它的实现方法称之为构造函数

    如2一般没有函数名称的函数,我们一般称之为匿名函数


二、匿名函数的代码模式

    如果你经常看Jquery,则会发现在Jquery中大量用到一下这种写法。

1function(){  
2        alert(11);  
3       })(); 

    其中这是匿名函数的几种代码模式之一。

    通常我们这样写

1 var fun = function(){  
2   alert(111);  
3 }

 

不会有任何执行结果,这只是一个单纯的赋值。

    想让匿名函数能自动执行,我们可以参照一下几种代码模式。

    1一种就是上述所写的那样,先写一个函数字面量,然后执行它。

1function(){  
2    alert(11);  
3   })(); 

    2还有一种优先执行法,用圆括号强制执行。

1function(){  
2        alert(11);  
3    }()) 

   3此外还有一个void操作符

1    void funtion(){  
2        alert(111);  
3     } 

 

三、函数声明和函数表达式   

JavaScript里的函数声明与函数表达式是有区别的。在JavaScript中有一个叫做函数提升的过程,即在执行时,会首先执行函数声明,使其在执行代码时可以用到。

如:

 

1 alert(sum(1,2));
2 function sum(num1,num2){
3      return num1+num2;
4 }

这段代码是能够完美执行的。

但函数表达式则不一样:

alert(sum(1,2));
var sum = function(num1,num2){
    return num1 + num2;
}

因为函数表达式在执行到时才被编译,所以在alert中还不能调用sum函数,最终导致报错。
除此之外,函数声明与函数表达式等价的。

关于JavaScript的函数运用,如果想知道更详细,还可以参考《用函数式编程技术编写优美的 JavaScript》


    这篇只是我的学习总结,如果错误请各位指点。

转载于:https://www.cnblogs.com/nonkicat/archive/2012/05/03/2480946.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值