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 相关文章推荐
如何用javascript判断录入的日期是否合法
Jan 08 Javascript
浏览器兼容console对象的简要解决方案分享
Oct 24 Javascript
Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
Sep 01 Javascript
深入解析JavaScript中的数字对象与字符串对象
Oct 21 Javascript
JS简单实现String转Date的方法
Mar 02 Javascript
AngularJS使用ng-repeat指令实现下拉框
Aug 23 Javascript
jQuery实现根据生日计算年龄 星座 生肖
Nov 23 Javascript
javascript实现简单的ajax封装示例
Dec 28 Javascript
Javascript 实现计算器时间功能详解及实例(二)
Jan 08 Javascript
JS实现的五级联动菜单效果完整实例
Feb 23 Javascript
JS使用cookie保存用户登录信息操作示例
May 30 Javascript
three.js利用gpu选取物体并计算交点位置的方法示例
Nov 25 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
php中sprintf与printf函数用法区别解析
2014/02/17 PHP
php微信开发之关注事件
2018/06/14 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
2019/10/14 PHP
JS是否可以跨文件同时控制多个iframe页面的应用技巧
2007/12/16 Javascript
在html页面上拖放移动标签
2010/01/08 Javascript
WEB 浏览器兼容 推荐收藏
2010/05/14 Javascript
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
jquery动态改变div宽度和高度
2015/02/09 Javascript
javascript跑马灯抽奖实例讲解
2020/04/17 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
2017/01/16 Javascript
微信小程序 数据遍历的实现
2017/04/05 Javascript
javascript 作用于作用域链的详解
2017/09/27 Javascript
js form表单input框限制20个字符,10个汉字代码实例
2019/04/12 Javascript
在vue+element ui框架里实现lodash的debounce防抖
2019/11/13 Javascript
OpenLayers3实现图层控件功能
2020/09/25 Javascript
[01:34:42]NAVI vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
Python基于递归算法实现的走迷宫问题
2017/08/04 Python
python正则中最短匹配实现代码
2018/01/16 Python
python实现多进程通信实例分析
2019/09/01 Python
对python中各个response的使用说明
2020/03/28 Python
深入了解Python 变量作用域
2020/07/24 Python
推荐10个HTML5响应式框架
2016/02/25 HTML / CSS
data:image data url 文件转为Blob上传后端的方法
2019/07/16 HTML / CSS
俄罗斯极限运动网上商店:Board Shop №1
2020/12/18 全球购物
给排水工程师岗位职责
2013/11/21 职场文书
班组长工作职责
2013/12/25 职场文书
党校个人自我鉴定范文
2014/03/28 职场文书
2014年创先争优活动总结
2014/05/04 职场文书
2014年村支部书记四风对照检查材料思想汇报
2014/10/02 职场文书
2014小学二年级班主任工作总结
2014/12/05 职场文书
2015学生会文艺部工作总结
2015/04/03 职场文书
2016年小学生寒假家长评语
2015/10/10 职场文书
MySQL如何构建数据表索引
2021/05/13 MySQL
Python实现双向链表
2022/05/25 Python