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 相关文章推荐
解析prototype,JQuery中跳出each循环的方法
Dec 12 Javascript
Node.js中使用事件发射器模式实现事件绑定详解
Aug 15 Javascript
jquery获得当前html页面源码的方法
Jul 14 Javascript
深入分析Javascript事件代理
Jan 30 Javascript
JavaScript String 对象常用方法总结
Apr 28 Javascript
javascript事件模型介绍
May 31 Javascript
javascript过滤数组重复元素的实现方法
May 03 Javascript
jQuery返回定位插件详解
May 15 jQuery
微信小程序实现长按删除图片的示例
May 18 Javascript
读懂CommonJS的模块加载
Apr 19 Javascript
JS面向对象之单选框实现
Jan 17 Javascript
解决element-ui里的下拉多选框 el-select 时,默认值不可删除问题
Aug 14 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
《破坏领主》销量已超100万 未来将继续开发新内容
2020/03/08 其他游戏
windows下开发并编译PHP扩展的方法
2011/03/18 PHP
百度实时推送api接口应用示例
2014/10/21 PHP
php字符串函数学习之substr()
2015/03/27 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
js中访问html中iframe的文档对象的代码[IE6,IE7,IE8,FF]
2011/01/08 Javascript
浅谈javascript中的作用域
2012/04/07 Javascript
extjs表格文本启用选择复制功能具体实现
2013/10/11 Javascript
jquery根据name属性查找的小例子
2013/11/21 Javascript
ie9 提示'console' 未定义问题的解决方法
2014/03/20 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
纯js三维数组实现三级联动效果
2017/02/07 Javascript
基于Nodejs利用socket.io实现多人聊天室
2017/02/22 NodeJs
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
详解JavaScript之ES5的继承
2020/07/08 Javascript
ssm+vue前后端分离框架整合实现(附源码)
2020/07/08 Javascript
基于JS实现操作成功之后自动跳转页面
2020/09/25 Javascript
[05:02][DOTA2]DOTA进化论 第一期
2013/09/27 DOTA
Python中的自定义函数学习笔记
2014/09/23 Python
python正则分析nginx的访问日志
2017/01/17 Python
python 2.7 检测一个网页是否能正常访问的方法
2018/12/26 Python
python接口自动化如何封装获取常量的类
2019/12/24 Python
Python中filter与lambda的结合使用详解
2019/12/24 Python
如何导出python安装的所有模块名称和版本号到文件中
2020/06/05 Python
Python实现封装打包自己写的代码,被python import
2020/07/12 Python
利用python制作拼图小游戏的全过程
2020/12/04 Python
Python日志打印里logging.getLogger源码分析详解
2021/01/17 Python
3D动画《斗罗大陆》上线当日播放过亿
2021/03/16 国漫
世界上最全面的草药补充剂和顶级品牌维生素网站:HerbsPro
2019/01/20 全球购物
名人珠宝设计师:Melinda Maria Jewelry
2019/03/06 全球购物
图库照片、免版税图片、矢量艺术、视频片段:Depositphotos
2019/08/02 全球购物
自荐信如何“自荐”
2013/10/24 职场文书
迎新年主持词
2015/07/06 职场文书
微信早安问候语
2015/11/10 职场文书
解析mybatis-plus中的resultMap简单使用
2021/11/23 Java/Android