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 相关文章推荐
safari,opera嵌入iframe页面cookie读取问题解决方法
Jun 23 Javascript
js解析与序列化json数据(三)json的解析探讨
Feb 01 Javascript
JS实现仿京东淘宝竖排二级导航
Dec 08 Javascript
jquery制作多功能轮播图插件
Apr 02 Javascript
JavaScript获取网页表单action属性的方法
Apr 02 Javascript
jQuery检测返回值的数据类型
Jul 13 Javascript
JS正则子匹配实例分析
Dec 22 Javascript
JS创建Tag标签的方法详解
Jun 09 Javascript
详解vue中引入stylus及报错解决方法
Sep 22 Javascript
详解Vue源码学习之callHook钩子函数
Jul 25 Javascript
详解Vue CLI3 多页应用实践和源码设计
Aug 30 Javascript
webpack4 处理CSS的方法示例
Sep 03 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
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
2011/08/08 PHP
PHP获取数组最后一个值的2种方法
2015/01/21 PHP
php操作xml并将其插入数据库的实现方法
2016/09/08 PHP
PHP parse_ini_file函数的应用与扩展操作示例
2019/01/07 PHP
关于jquery性能最佳实践的讨论,与求教
2012/03/30 Javascript
Document:getElementsByName()使用方法及示例
2013/10/28 Javascript
用jquery写的菜单从左往右滑动出现
2014/04/11 Javascript
JS判断浏览器是否支持某一个CSS3属性的方法
2014/10/17 Javascript
jQuery无刷新分页完整实例代码
2015/10/27 Javascript
javascript适合移动端的日期时间拾取器
2015/11/10 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
2016/07/12 Javascript
Bootstrap弹出框(Popover)被挤压的问题小结
2017/07/11 Javascript
Node+OCR实现图像文字识别功能
2018/11/26 Javascript
JQuery中queue方法用法示例
2019/01/31 jQuery
vue实现将一个数组内的相同数据进行合并
2019/11/07 Javascript
vue自定义组件实现双向绑定
2021/01/13 Vue.js
[01:07]2015国际邀请赛 中国区预选赛精彩回顾
2015/06/15 DOTA
python基础教程之对象和类的实际运用
2014/08/29 Python
Python 删除整个文本中的空格,并实现按行显示
2018/07/24 Python
django小技巧之html模板中调用对象属性或对象的方法
2018/11/30 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
2019/07/07 Python
Python如何输出整数
2020/06/07 Python
Django模型验证器介绍与源码分析
2020/09/08 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
Canvas 帧动画吃苹果小游戏
2020/08/05 HTML / CSS
夏威夷灵感服装及配饰:Reyn Spooner
2018/09/18 全球购物
Fox Racing英国官网:越野摩托车和山地自行车服装
2020/02/26 全球购物
资产经营总监岗位职责范文
2013/12/01 职场文书
收银员岗位职责
2014/02/07 职场文书
个人贷款授权委托书样本
2014/10/07 职场文书
2014年计生工作总结
2014/11/21 职场文书
考试作弊检讨
2015/01/27 职场文书
值班管理制度范本
2015/08/06 职场文书
少先队中队工作总结
2015/08/14 职场文书
环保建议书范文
2015/09/14 职场文书
python脚本框架webpy模板赋值实现
2021/11/20 Python