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 MD4
Dec 20 Javascript
某页码显示的helper 少量调整,另附js版
Sep 12 Javascript
JavaScript去除空格的三种方法(正则/传参函数/trim)
Feb 06 Javascript
JS方法调用括号的问题探讨
Jan 24 Javascript
jQuery判断元素是否存在的可靠方法
May 06 Javascript
jquery实现侧边弹出的垂直导航
Dec 09 Javascript
javascript删除一个html元素节点的方法
Dec 20 Javascript
javascript跨域的方法汇总
Oct 23 Javascript
jQuery Validate 数组 全部验证问题
Jan 12 Javascript
js原生实现移动端手指滑动轮播图效果的示例
Jan 02 Javascript
基于html+css+js实现简易计算器代码实例
Feb 28 Javascript
vue实现简单加法计算器
Oct 22 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
HTML TO JavaScript 转换
2006/06/26 Javascript
Windows Live的@live.com域名注册漏洞 利用代码
2006/12/27 Javascript
js检查页面上有无重复id的实现代码
2013/07/17 Javascript
基于jquery插件实现常见的幻灯片效果
2013/11/01 Javascript
js输入框邮箱自动提示功能代码实现
2013/12/10 Javascript
JavaScript中Math.SQRT2属性的使用详解
2015/06/14 Javascript
对jQuary选择器的全面总结
2016/06/20 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
vue中如何使用ztree
2018/02/06 Javascript
Koa2微信公众号开发之本地开发调试环境搭建
2018/05/16 Javascript
Vue SPA单页应用首屏优化实践
2018/06/28 Javascript
layui table设置前台过滤转义等方法
2018/08/17 Javascript
微信小程序中的canvas 文字断行和省略号显示功能的处理方法
2018/11/14 Javascript
用Fundebug插件记录网络请求异常的方法
2019/02/21 Javascript
Nginx设置为Node.js的前端服务器方法总结
2019/03/27 Javascript
详解Vue.js3.0 组件是如何渲染为DOM的
2020/11/10 Javascript
[12:29]《一刀刀一天》之DOTA全时刻19:蝙蝠骑士田伯光再度不举
2014/06/10 DOTA
浅谈Python2、Python3相对路径、绝对路径导入方法
2018/06/22 Python
关于python列表增加元素的三种操作方法
2018/08/22 Python
python判断输入日期为第几天的实例
2018/11/13 Python
Python安装依赖(包)模块方法详解
2020/02/14 Python
浅谈keras中的keras.utils.to_categorical用法
2020/07/02 Python
基于Python3读写INI配置文件过程解析
2020/07/23 Python
男女时尚与复古风格在线购物:RoseGal(全球免费送货)
2017/07/19 全球购物
ASOS亚洲:ASOS Asia
2018/03/04 全球购物
小橄榄树:Le Petit Olivier
2018/04/23 全球购物
总经理岗位职责
2013/11/09 职场文书
党员三严三实对照检查材料
2014/10/13 职场文书
事业单位财务人员岗位职责
2015/04/14 职场文书
党支部创先争优公开承诺书
2015/04/30 职场文书
农民工工资承诺书大全
2015/05/04 职场文书
基于Python实现的购物商城管理系统
2021/04/27 Python
彻底理解golang中什么是nil
2021/04/29 Golang
Django+Celery实现定时任务的示例
2021/06/23 Python
SpringBoot实现quartz定时任务可视化管理功能
2021/08/30 Java/Android
世界十大动漫制作公司排行榜,迪士尼上榜,第二是美国代表性文化符
2022/03/18 欧美动漫