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 相关文章推荐
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
Dec 25 Javascript
javascript奇异的arguments分析
Oct 20 Javascript
js查找某元素中的所有图片地址的方法
Jan 16 Javascript
JavaScript实现简单图片翻转的方法
Apr 17 Javascript
jQuery动态添加及删除表单上传元素的方法(附demo源码下载)
Jan 15 Javascript
vue,angular,avalon这三种MVVM框架优缺点
Apr 27 Javascript
非常酷炫的Bootstrap图片轮播动画
May 27 Javascript
原生JS实现简单放大镜效果
Feb 08 Javascript
Ajax异步获取html数据中包含js方法无效的解决方法
Feb 20 Javascript
jQuery实现的动态文字变化输出效果示例【附演示与demo源码下载】
Mar 24 jQuery
JS加密插件CryptoJS实现AES加密操作示例
Aug 16 Javascript
基于JavaScript实现简单的轮播图
Mar 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
PHP MSSQL 存储过程的方法
2008/12/24 PHP
php smarty 二级分类代码和模版循环例子
2011/06/01 PHP
php实现与erlang的二进制通讯实例解析
2014/07/23 PHP
php模拟服务器实现autoindex效果的方法
2015/03/10 PHP
php命令行模式代码实例详解
2021/02/26 PHP
jquery更换文章内容与改变字体大小代码
2013/09/30 Javascript
js实现精确到秒的倒计时效果
2016/05/29 Javascript
javascript的函数劫持浅析
2016/09/26 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
jquery获取transform里的值实现方法
2017/12/12 jQuery
three.js搭建室内场景教程
2018/12/30 Javascript
vue自定义指令限制输入框输入值的步骤与完整代码
2020/08/30 Javascript
[42:24]完美世界DOTA2联赛循环赛 LBZS vs DM BO2第一场 11.01
2020/11/02 DOTA
Python内置模块ConfigParser实现配置读写功能的方法
2018/02/12 Python
python修改list中所有元素类型的三种方法
2018/04/09 Python
python3+PyQt5+Qt Designer实现扩展对话框
2018/04/20 Python
基于数据归一化以及Python实现方式
2018/07/11 Python
python实现windows壁纸定期更换功能
2019/01/21 Python
Python实现的微信支付方式总结【三种方式】
2019/04/13 Python
Python实现性能自动化测试竟然如此简单
2019/07/30 Python
Python完全识别验证码自动登录实例详解
2019/11/24 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
2020/03/10 Python
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
加热夹克:RAVEAN
2018/10/19 全球购物
Proenza Schouler官方网站:纽约女装和配饰品牌
2019/01/03 全球购物
用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
2014/01/05 面试题
公积金转移接收函
2014/01/11 职场文书
模具专业毕业推荐信
2014/03/08 职场文书
机器人总动员观后感
2015/06/09 职场文书
安全教育主题班会教案
2015/08/12 职场文书
选对餐饮营销策略,营业额才会上涨
2019/08/27 职场文书
python实现腾讯滑块验证码识别
2021/04/27 Python
php将xml转化对象的实例详解
2021/11/17 PHP
深入理解MySQL中MVCC与BufferPool缓存机制
2022/05/25 MySQL