天行健、君子以自强不息;地势坤、君子以厚德载物!

关于我

zhenn 前端工程师,淘宝 北京!这里仅仅记录我的技术生活以及成长历程,如果有兴趣和我交流,猛击以下链接即可。
follow zhenn in TC Microblog
follow zhenn in SinaTwitter

javascript定义函数的三种方法

在JavaScript的世界里,定义函数的方法多种多样,这正是JavaScript灵活性的体现,但是正是这个原因让初学者摸不着头脑,尤其对于没有 语言基础的同学。正所谓条条大道通罗马,但是如果道路太多,会让行路者不知所措,因为不知道走那条路才是正途,呵呵,废话一大篇,闲言少叙,先看代码:

1 /*第一种方法,使用function语句,格式如下*/
2 function fn(){
3   alert("这是使用function语句进行函数定义");
4 }
5 fn();
6
7 /*第二种方法,使用Function()构造函数克隆函数*/
8 var F = new Function("a","b","alert(a+b)");
9 F(a,b);
10
11 其实相当于如下代码:
12 function F(a,b){
13   alert(a+b);
14 }
15
16 /*第三种方法,使用函数直接量*/
17 var zhenn = function(){
18   alert("zhenn");
19 }
20 zhenn();

其中用“function语句”和使用“函数直接量”来定义函数的方法似乎比较常见,也比较好理解,在此不多说。针对使用Function()构造函数克 隆函数,一般很少用,因为一个函数通常有多条语句组成,如果将他们以字符串的形式作为参数传递,难免会使得代码的可读性很差。

在这里再顺便提一下构造函数吧,其实从字面上理解,构造函数似乎也是函数,其实它并不是函数,而只是一种函数模型。举个不恰当的例子,构造函数相当于一部 刚组装好的车子,无论远看还是近看,它都是一部车子,但是还没有加油(代表在使用前的一个必要步骤),所以它并不能启动。如果想要这部车子正常行驶,就必 须给它加上油,其实这个过程就等同于构造函数的实例化,否则它并不能正常运行!看下面这个例子:

1 function Fn(){ //定义构造函数  
2   this.elem ="这里是使用function()构造函数定义函数,呵呵";  
3   this.fn = function(){    
4     alert("这是使用function()构造函数定义函数,嘿嘿");  
5   }
6 }
7 var f = new Fn(); //实例化
8 alert(f.elem);
9 f.fn();

posted on 2011-02-19 23:27  zhenn  阅读(11314)  评论(0编辑  收藏  举报

导航