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 相关文章推荐
JavaScript实现防止网页被嵌入Frame框架的代码分享
Dec 29 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
Feb 26 Javascript
JS实现点击按钮获取页面高度的方法
Nov 02 Javascript
如何使用Bootstrap的modal组件自定义alert,confirm和modal对话框
Mar 01 Javascript
WEB前端开发框架Bootstrap3 VS Foundation5
May 16 Javascript
JS简单判断字符在另一个字符串中出现次数的2种常用方法
Apr 20 Javascript
前端主流框架vue学习笔记第二篇
Jul 26 Javascript
CentOS环境中MySQL修改root密码方法
Jan 07 Javascript
JavaScript模板引擎实现原理实例详解
Dec 14 Javascript
vue实现井字棋游戏
Sep 29 Javascript
vue 单页应用和多页应用的优劣
Oct 22 Javascript
vue项目多环境配置(.env)的实现
Jul 21 Vue.js
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
一个从别的网站抓取信息的例子(域名查询)
2006/10/09 PHP
dedecms后台验证码总提示错误的解决方法
2007/03/21 PHP
PHP进阶学习之反射基本概念与用法分析
2019/06/18 PHP
如何在Web页面上直接打开、编辑、创建Office文档
2007/03/12 Javascript
再谈querySelector和querySelectorAll的区别与联系
2012/04/20 Javascript
jQuery javaScript捕获回车事件(示例代码)
2013/11/07 Javascript
jQuery级联操作绑定事件实例
2014/09/02 Javascript
jQuery修改li下的样式以及li下的img的src的值的方法
2014/11/02 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
2015/05/01 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
js Canvas实现的日历时钟案例分享
2016/12/25 Javascript
微信小程序 Tab页切换更新数据
2017/01/05 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
2017/02/17 Javascript
JavaScript中的普通函数和箭头函数的区别和用法详解
2017/03/21 Javascript
基于jQuery的$.getScript方法去加载javaScript文档解析
2017/11/08 jQuery
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
2018/12/20 Javascript
Vue axios 将传递的json数据转为form data的例子
2019/10/29 Javascript
extjs图形绘制之饼图实现方法分析
2020/03/06 Javascript
vue-cli或vue项目利用HBuilder打包成移动端app操作
2020/07/29 Javascript
详解JavaScript的this指向和绑定
2020/09/08 Javascript
初学python数组的处理代码
2011/01/04 Python
详解Python的collections模块中的deque双端队列结构
2016/07/07 Python
python之文件读取一行一行的方法
2018/07/12 Python
python训练数据时打乱训练数据与标签的两种方法小结
2018/11/08 Python
Python3日期与时间戳转换的几种方法详解
2019/06/04 Python
Django 重写用户模型的实现
2019/07/29 Python
python中加背景音乐如何操作
2020/07/19 Python
python爬虫要用到的库总结
2020/07/28 Python
css3实现的下拉菜单效果示例
2014/01/22 HTML / CSS
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
详解通过focusout事件解决IOS键盘收起时界面不归位的问题
2019/07/18 HTML / CSS
新西兰演唱会和体育门票网站:Ticketmaster新西兰
2017/10/07 全球购物
教师开学感言
2014/02/14 职场文书
硕士毕业论文导师评语
2014/12/31 职场文书
2019年销售部季度工作计划3篇
2019/10/09 职场文书