浅谈JS函数定义方式的区别


Posted in Javascript onOctober 30, 2016

关于JS的函数定义方式有以下两种:

(1)典型的函数声明

function slide(arguments){
//...code
}

(2)以函数表达式的形式定义函数

var slide = function(arguments){
//...code
}

虽然上面两种方式逻辑上是等价的,但是还是有点小区别:

区别一:例一中的函数会在代码执行以前被加载到作用域中,而例二则是在代码执行到那一行的时候才会有定 义;

区别二:函数声明会给函数指定一个名字,而函数表达式则是创建一个匿名函数,然后将这个匿名函数赋给一个变量;

看下面例子:

function factorial(num){
if(num<=1){
return 1;
}
else {
return num*arguments.callee(num-1);
}
}
var anotherFactorial = factorial;
factorial = null;
console.log(anotherFactorial);//输出factorial(){},有函数名

若是以函数表达式定义

var factorial = function(num){
//...code
}
//...code
console.log(anotherFactorial);//输出function(){},匿名函数

以上就是小编为大家带来的浅谈JS函数定义方式的区别全部内容了,希望大家多多支持三水点靠木~

Javascript 相关文章推荐
jQuery powerFloat万能浮动层下拉层插件使用介绍
Dec 27 Javascript
jQuery 选择器项目实例分析及实现代码
Dec 28 Javascript
Jquery实现textarea根据文本内容自适应高度
Apr 03 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
Aug 06 Javascript
BootStrap的alert提示框的关闭后再显示怎么解决
May 17 Javascript
JS实现环形进度条(从0到100%)效果
Jul 05 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
Mar 13 Javascript
js中字符型和数值型数字的互相转化方法(必看)
Apr 25 Javascript
微信小程序wx.request拦截器使用详解
Jul 09 Javascript
详解关于Vue单元测试的几个坑
Apr 26 Javascript
js+css实现全屏侧边栏
Jun 16 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
Jul 10 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
Oct 30 #Javascript
原生js代码实现图片放大境效果
Oct 30 #Javascript
Angular2 多级注入器详解及实例
Oct 30 #Javascript
Javascript 跨域知识详细介绍
Oct 30 #Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
Oct 30 #Javascript
JS触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器
Oct 30 #Javascript
js模式化窗口问题![window.dialogArguments]
Oct 30 #Javascript
You might like
DC最新动画电影:《战争之子》为何内容偏激,毁了一个不错的漫画
2020/04/09 欧美动漫
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
PHP实现图片批量打包下载功能
2017/03/01 PHP
扩展jquery实现客户端表格的分页、排序功能代码
2011/03/16 Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
2013/04/24 Javascript
JS不能跨域借助jquery获取IP地址的方法
2014/08/20 Javascript
JS获取图片高度宽度的方法分享
2015/04/17 Javascript
JS在onclientclick里如何控制onclick的执行
2016/05/30 Javascript
移动端点击态处理的三种实现方式
2017/01/12 Javascript
React应用中使用Bootstrap的方法
2017/08/15 Javascript
Vue.js结合bootstrap前端实现分页和排序效果
2018/12/29 Javascript
JavaScript私有变量实例详解
2019/01/24 Javascript
JavaScript使用表单元素验证表单的示例代码
2019/08/20 Javascript
[46:43]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第三局
2016/02/28 DOTA
python集合类型用法分析
2015/04/08 Python
Django中的CACHE_BACKEND参数和站点级Cache设置
2015/07/23 Python
python 性能优化方法小结
2017/03/31 Python
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
在Mac上删除自己安装的Python方法
2018/10/29 Python
pygame游戏之旅 python和pygame安装教程
2018/11/20 Python
python利用Tesseract识别验证码的方法示例
2019/01/21 Python
利用OpenCV和Python实现查找图片差异
2019/12/19 Python
Django serializer优化类视图的实现示例
2020/07/16 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
2020/08/18 Python
优秀毕业生求职信范文
2014/01/02 职场文书
市场营销求职信范文
2014/02/21 职场文书
学习党的群众路线教育实践活动心得体会
2014/03/01 职场文书
《绿色蝈蝈》教学反思
2014/03/02 职场文书
文明家庭先进事迹材料
2014/05/14 职场文书
四风问题对照检查材料思想汇报
2014/10/07 职场文书
工作证明英文模板
2014/10/21 职场文书
同学聚会通知书
2015/04/20 职场文书
小学同学聚会感言
2015/07/30 职场文书
关于社会实践的心得体会(2016最新版)
2016/01/25 职场文书
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
2021/05/30 Javascript
Vue3如何理解ref toRef和toRefs的区别
2022/02/18 Vue.js