浅谈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 常见学习网站与参考书
Nov 09 Javascript
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
Jan 09 Javascript
引用 js在IE与FF之间的区别详细解析
Nov 20 Javascript
JS中使用sort结合localeCompare实现中文排序实例
Jul 23 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
Nov 26 Javascript
JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法
Jan 18 Javascript
jQuery EasyUI 页面加载等待及页面等待层
Feb 06 Javascript
jQuery中extend函数简单用法示例
Oct 11 jQuery
微信小程序顶部可滚动导航效果
Oct 31 Javascript
Angular实现较为复杂的表格过滤,删除功能示例
Dec 23 Javascript
vue el-table实现自定义表头
Dec 11 Javascript
解决ant-design-vue中menu菜单无法默认展开的问题
Oct 31 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
php弹出对话框实现重定向代码
2014/01/23 PHP
详解PHP对象的串行化与反串行化
2016/01/24 PHP
ThinkPHP自定义Redis处理SESSION的实现方法
2016/05/16 PHP
PHP+mysql实现从数据库获取下拉树功能示例
2017/01/06 PHP
laravel 执行迁移回滚示例
2019/10/23 PHP
js运动动画的八个知识点
2015/03/12 Javascript
js实现获取div坐标的方法
2015/11/16 Javascript
jquery.cookie.js实现用户登录保存密码功能的方法
2016/04/15 Javascript
JavaScript中子对象访问父对象的方式详解
2016/09/01 Javascript
javascript事件的传播基础实例讲解(35)
2017/02/14 Javascript
基于node.js的fs核心模块读写文件操作(实例讲解)
2017/09/10 Javascript
微信小程序实现页面跳转传值的方法
2017/10/12 Javascript
极简主义法编写JavaScript类
2017/11/02 Javascript
React中常见的动画实现的几种方式
2018/01/10 Javascript
解决vue页面DOM操作不生效的问题
2018/03/17 Javascript
解决vue项目运行npm run serve报错的问题
2020/10/26 Javascript
[01:34]传奇从这开始 2016国际邀请赛中国区预选赛震撼开启
2016/06/26 DOTA
Python测试人员需要掌握的知识
2018/02/08 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
Python3多线程基础知识点
2019/02/19 Python
python生成requirements.txt的两种方法
2019/09/18 Python
Python模块的定义,模块的导入,__name__用法实例分析
2020/01/07 Python
python 获取域名到期时间的方法步骤
2021/02/10 Python
英国护发和美妆在线商店:Klip Shop
2019/03/24 全球购物
金融行业务员的自我评价
2013/12/13 职场文书
财务主管的岗位职责
2013/12/30 职场文书
教师党员一句话承诺
2014/03/28 职场文书
毕业典礼演讲稿
2014/05/13 职场文书
2014法制宣传日活动总结
2014/07/09 职场文书
就业协议书怎么填
2014/09/15 职场文书
说好普通话圆梦你我他演讲稿
2014/09/21 职场文书
学习型家庭事迹材料
2014/12/20 职场文书
药店营业员岗位职责
2015/04/14 职场文书
学校安全管理制度
2015/08/06 职场文书
完美解决golang go get私有仓库的问题
2021/05/05 Golang
MySql 8.0及对应驱动包匹配的注意点说明
2021/06/23 MySQL