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 相关文章推荐
任意位置显示html菜单
Feb 01 Javascript
AngularJS基础知识
Dec 21 Javascript
13个PHP函数超实用
Oct 21 Javascript
js表单提交和submit提交的区别实例分析
Dec 10 Javascript
不得不分享的JavaScript常用方法函数集(下)
Dec 25 Javascript
js发送短信倒计时的简单实现方法
Sep 08 Javascript
Bootstrap Table使用心得总结
Nov 29 Javascript
JS实现上传图片实时预览功能
May 22 Javascript
Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#‘的解决方法
Jun 17 Javascript
Vue瀑布流插件的使用示例
Sep 19 Javascript
js实现简单分页导航栏效果
Jun 28 Javascript
vue 解决addRoutes多次添加路由重复的操作
Aug 04 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获取地址栏信息的代码
2008/10/08 PHP
Zend Framework动作助手Redirector用法实例详解
2016/03/05 PHP
PHP 常用时间函数资料整理
2016/10/22 PHP
PHP文件操作简单介绍及函数汇总
2020/12/11 PHP
最近项目写了一些js,水平有待提高
2009/01/31 Javascript
得到jQuery detach()后节点中的某个值实现代码
2013/02/05 Javascript
jQuery对于显示和隐藏等常用状态的判断方法
2014/12/13 Javascript
浅谈javascript中的instanceof和typeof
2015/02/27 Javascript
js的各种排序算法实现(总结)
2016/07/23 Javascript
JS中如何实现点击a标签返回页面顶部的问题
2017/01/19 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
JS得到当前时间的方法示例
2017/03/24 Javascript
ES6实现的遍历目录函数示例
2017/04/07 Javascript
Angular6 发送手机验证码按钮倒计时效果实现方法
2019/01/08 Javascript
详解 微信小程序开发框架(MINA)
2019/05/17 Javascript
Vuex,iView UI面包屑导航使用扩展详解
2019/11/04 Javascript
Vue的click事件防抖和节流处理详解
2019/11/13 Javascript
详解Angular Karma测试的持续集成实践
2019/11/15 Javascript
在react中使用vue的状态管理的方法示例
2020/05/02 Javascript
element中Steps步骤条和Tabs标签页关联的解决
2020/12/08 Javascript
[05:04]DOTA2上海特级锦标赛主赛事第二日TOP10
2016/03/04 DOTA
[05:06]2017亚洲邀请赛DAC回顾片
2017/04/19 DOTA
[01:03:42]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
基于使用paramiko执行远程linux主机命令(详解)
2017/10/16 Python
LRUCache的实现原理及利用python实现的方法
2017/11/21 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
2018/02/24 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
python爬虫中多线程的使用详解
2019/09/23 Python
Python3.8对可迭代解包的改进及用法详解
2019/10/15 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
2020/02/28 Python
银河香水:Galaxy Perfume
2019/03/25 全球购物
个人作风剖析材料
2014/02/02 职场文书
舞蹈毕业生的自我评价
2014/03/05 职场文书
竞选学委演讲稿
2014/09/13 职场文书
开展批评与自我批评发言材料
2014/10/17 职场文书
图神经网络GNN算法
2022/05/11 Python