JavaScript中定义函数的三种方法


Posted in Javascript onMarch 12, 2015

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

/*第一种方法,使用function语句,格式如下*/

function fn(){
alert("这是使用function语句进行函数定义");

}

fn();

/*第二种方法,使用Function()构造函数克隆函数*/

var F = new Function("a","b","alert(a+b)");

F(a,b);
其实相当于如下代码:

function F(a,b){

alert(a+b);

}
/*第三种方法,使用函数直接量*/

var zhenn = function(){

alert("zhenn");

}

zhenn();

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

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

function Fn(){    //定义构造函数

this.elem ="这里是使用function()构造函数定义函数,呵呵";


this.fn = function(){




alert("这是使用function()构造函数定义函数,嘿嘿");


}

}

var f = new Fn();  //实例化

alert(f.elem);

f.fn();
Javascript 相关文章推荐
映彩衣的js随笔(js图片切换效果)
Jul 31 Javascript
AngularJS基础知识笔记之表格
May 10 Javascript
javascript实现table选中的行以指定颜色高亮显示的方法
May 13 Javascript
javaScript中Math()函数注意事项
Jun 18 Javascript
Backbone.js 0.9.2 源码注释中文翻译版
Jun 25 Javascript
Markdown与Bootstrap相结合实现图片自适应属性
May 04 Javascript
javaScript知识点总结(必看篇)
Jun 10 Javascript
js中常用的Tab切换效果(推荐)
Aug 30 Javascript
AngularJS自定义服务与fliter的混合使用
Nov 24 Javascript
javascript Function函数理解与实战
Dec 01 Javascript
JS实现带导航城市列表以及输入搜索功能
Jan 04 Javascript
angularjs实现对表单输入改变的监控(ng-change和watch两种方式)
Aug 29 Javascript
javascript实时显示北京时间的方法
Mar 12 #Javascript
jquery实现焦点图片随机切换效果的方法
Mar 12 #Javascript
JavaScript数据结构与算法之栈详解
Mar 12 #Javascript
jQuery实现简单的日期输入格式化控件
Mar 12 #Javascript
Javascript数据结构与算法之列表详解
Mar 12 #Javascript
javascript实现 百度翻译 可折叠的分享按钮列表
Mar 12 #Javascript
基于jquery实现的自动补全功能
Mar 12 #Javascript
You might like
博士208HAF收音机实习报告
2021/03/02 无线电
PHP使用Redis替代文件存储Session的方法
2017/02/15 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
2017/08/17 PHP
PHP convert_cyr_string()函数讲解
2019/02/13 PHP
php数组函数array_push()、array_pop()及array_shift()简单用法示例
2020/01/26 PHP
图片动画横条广告带上下滚动的JS代码
2013/10/25 Javascript
倒记时60刷新网页的js代码
2014/02/18 Javascript
使用js判断TextBox控件值改变然后出发事件
2014/03/07 Javascript
JQuery插入DOM节点的方法
2015/06/11 Javascript
jQuery position() 函数详解以及jQuery中position函数的应用
2015/12/14 Javascript
jquery.Jcrop结合JAVA后台实现图片裁剪上传实例
2016/11/05 Javascript
bootstrap选项卡使用方法解析
2017/01/11 Javascript
详解vue数据渲染出现闪烁问题
2017/06/29 Javascript
js事件触发操作实例分析
2019/06/21 Javascript
使用Node.js实现base64和png文件相互转换的方法
2020/03/11 Javascript
解决vue路由name同名,路由重复的问题
2020/08/05 Javascript
[01:32]2016国际邀请赛中国区预选赛IG战队首日赛后采访
2016/06/27 DOTA
Python中字典(dict)和列表(list)的排序方法实例
2014/06/16 Python
Python抽象类的新写法
2015/06/18 Python
Python的Django框架中的URL配置与松耦合
2015/07/15 Python
利用Python爬虫给孩子起个好名字
2017/02/14 Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
2018/08/02 Python
TensorFlow基于MNIST数据集实现车牌识别(初步演示版)
2019/08/05 Python
Python中字典与恒等运算符的用法分析
2019/08/22 Python
Python enumerate内置库用法解析
2020/02/24 Python
Django模型中字段属性choice使用说明
2020/03/30 Python
Python实现手势识别
2020/10/21 Python
CSS3属性background-size使用指南
2014/12/09 HTML / CSS
css3 transform导致子元素固定定位变成绝对定位的方法
2020/03/06 HTML / CSS
HTML5中的新元素介绍
2008/10/17 HTML / CSS
我是一名护士演讲稿
2014/08/28 职场文书
学前班幼儿评语大全
2014/12/29 职场文书
护理实习生带教计划
2015/01/16 职场文书
投标承诺函格式
2015/01/21 职场文书
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
2021/05/25 Python
排查MySQL生产环境索引没有效果
2022/04/11 MySQL