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代码
Nov 23 Javascript
javascript限制文本框只允许输入数字(曾经与现在的方法对比)
Jan 18 Javascript
JavaScript网页定位详解
Jan 13 Javascript
jquery实现侧边弹出的垂直导航
Dec 09 Javascript
JavaScript 学习笔记之语句
Jan 14 Javascript
JS+CSS实现下拉列表框美化效果(3款)
Aug 15 Javascript
基于JavaScript实现滑动门效果
Mar 16 Javascript
jQuery实现动态添加、删除按钮及input输入框的方法
Apr 27 jQuery
原生JS实现N级菜单的代码
May 21 Javascript
React 子组件向父组件传值的方法
Jul 24 Javascript
BootStrap自定义popover,点击区域隐藏功能的实现
Jan 23 Javascript
创建echart多个联动的示例代码
Nov 23 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 存取 MySQL 数据库的一个例子
2006/10/09 PHP
解析php常用image图像函数集
2013/06/24 PHP
IE与FireFox中的childNodes区别
2011/10/20 Javascript
JavaScript中join()方法的使用简介
2015/06/09 Javascript
13个PHP函数超实用
2015/10/21 Javascript
jQuery-mobile事件监听与用法详解
2016/11/23 Javascript
js 判断登录界面的账号密码是否为空
2017/02/08 Javascript
node.js中cluster的使用教程
2017/06/09 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
2017/10/31 Javascript
React Native 截屏组件的示例代码
2017/12/06 Javascript
在Vue中获取组件声明时的name属性方法
2018/09/12 Javascript
微信小程序页面传多个参数跳转页面的实现方法
2019/05/17 Javascript
深入了解js原型模式
2019/05/30 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
2019/10/16 Javascript
python中os操作文件及文件路径实例汇总
2015/01/15 Python
Python使用tablib生成excel文件的简单实现方法
2016/03/16 Python
Python制作简易注册登录系统
2016/12/15 Python
python操作小程序云数据库实现简单的增删改查功能
2019/06/06 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
Tensorflow实现神经网络拟合线性回归
2019/07/19 Python
Python随机数函数代码实例解析
2020/02/09 Python
django在保存图像的同时压缩图像示例代码详解
2020/02/11 Python
python连接mysql数据库并读取数据的实现
2020/09/25 Python
Python Charles抓包配置实现流程图解
2020/09/29 Python
设计师家具购买和委托在线市场:Viyet
2016/11/16 全球购物
英国山地公路自行车商店:Tweeks Cycles
2018/03/16 全球购物
The Hut美国/加拿大:英国领先的豪华在线百货商店
2019/03/26 全球购物
Lookfantastic澳大利亚官网:英国知名美妆购物网站
2021/01/07 全球购物
什么是servlet
2012/05/08 面试题
小学运动会表扬稿
2014/01/19 职场文书
聘任书的写作格式及范文
2014/03/29 职场文书
小学生五年级大队长竞选发言稿
2014/09/12 职场文书
优秀党务工作者先进事迹材料
2014/12/25 职场文书
退伍军人感言
2015/08/01 职场文书
教师正风肃纪心得体会
2016/01/15 职场文书
mysql性能优化以及配置连接参数设置
2022/05/06 MySQL