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 相关文章推荐
IE7提供XMLHttpRequest对象为兼容
Mar 08 Javascript
Grid得到选择行数据的方法总结
Jan 17 Javascript
js获取GridView中行数据的两种方法 分享
Jul 13 Javascript
移动节点的jquery代码
Jan 13 Javascript
angularJS 中$attrs方法使用指南
Feb 09 Javascript
javascript转换日期字符串为Date日期对象的方法
Feb 13 Javascript
chrome不支持form.submit的解决方案
Apr 28 Javascript
JavaScript字符串常用的方法
Mar 10 Javascript
解决Vue+Element ui开发中碰到的IE问题
Sep 03 Javascript
layer iframe 设置关闭按钮的方法
Sep 12 Javascript
如何基于js判断浏览器版本
Feb 20 Javascript
原生JavaScript实现五子棋游戏
Nov 09 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实现的多维数组排序算法分析
2018/02/10 PHP
如何通过Apache在本地配置多个虚拟主机
2020/07/29 PHP
jquery append()方法与html()方法的区别及使用介绍
2014/08/01 Javascript
javascript对中文按照拼音排序代码
2014/08/20 Javascript
深入浅析JavaScript中数据共享和数据传递
2016/04/25 Javascript
JavaScript实现阿拉伯数字和中文数字互相转换
2016/06/12 Javascript
快速解决js开发下拉框中blur与click冲突
2016/10/10 Javascript
JS动态计算移动端rem的解决方案
2016/10/14 Javascript
Vue.js 2.0窥探之Virtual DOM到底是什么?
2017/02/10 Javascript
使用vue和datatables进行表格的服务器端分页实例代码
2017/06/07 Javascript
详解vue-admin和后端(flask)分离结合的例子
2018/02/12 Javascript
JavaScript常见鼠标事件与用法分析
2019/01/03 Javascript
详解原生JS回到顶部
2019/03/25 Javascript
vue中get请求如何传递数组参数的方法示例
2019/11/08 Javascript
JS错误处理与调试操作实例分析
2020/04/13 Javascript
Vue实现返回顶部按钮实例代码
2020/10/21 Javascript
[02:51]2014DOTA2国际邀请赛 IG战队官方纪录片
2014/07/21 DOTA
[51:15]完美世界DOTA2联赛PWL S2 PXG vs Magma 第一场 11.21
2020/11/24 DOTA
Python编程对列表中字典元素进行排序的方法详解
2017/05/26 Python
Python实现对百度云的文件上传(实例讲解)
2017/10/21 Python
Python数据类型中的“冒号“[::]——分片与步长操作示例
2018/01/24 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
2018/04/10 Python
numpy.linspace 生成等差数组的方法
2018/07/02 Python
Python多线程编程之多线程加锁操作示例
2018/09/06 Python
Django使用AJAX调用自己写的API接口的方法
2019/03/06 Python
python for循环remove同一个list过程解析
2019/08/14 Python
Pytorch 实现数据集自定义读取
2020/01/18 Python
Python如何实现后端自定义认证并实现多条件登陆
2020/06/22 Python
详解如何在css3打包后自动追加前缀插件:autoprefixer
2018/12/18 HTML / CSS
香港中原电器网上商店:Chung Yuen
2019/06/26 全球购物
中国跨镜手机配件批发在线商店:TVC-Mall
2019/08/20 全球购物
双立人美国官方商店:ZWILLING集团餐具和炊具
2020/05/07 全球购物
本科生导师推荐信范文
2014/05/18 职场文书
2014年重阳节老干部座谈会上的讲话稿
2014/09/25 职场文书
火烧圆明园观后感
2015/06/03 职场文书
股东协议书范本2016
2016/03/21 职场文书