浅谈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 相关文章推荐
input+select(multiple) 实现下拉框输入值
May 21 Javascript
JavaScript 全角转半角部分
Oct 28 Javascript
基于jQuery的弹出消息插件 DivAlert之旅(一)
Apr 01 Javascript
javascript 数组学习资料收集
Apr 11 Javascript
探讨js中的双感叹号判断
Nov 11 Javascript
Javascript变量作用域详解
Dec 06 Javascript
javascript实现计时器的简单方法
Feb 21 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
Aug 29 Javascript
微信小程序开发之大转盘 仿天猫超市抽奖实例
Dec 08 Javascript
分分钟玩转Vue.js组件(二)
Mar 01 Javascript
AngularJS中scope的绑定策略实例分析
Oct 30 Javascript
解决vue 路由变化页面数据不刷新的问题
Mar 13 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自动反斜杠的函数代码
2010/01/05 PHP
php制作unicode解码工具(unicode编码转换器)代码分享
2013/12/24 PHP
PHP下的Oracle客户端扩展(OCI8)安装教程
2014/09/10 PHP
PHP入门教程之会话控制技巧(cookie与session)
2016/09/11 PHP
JavaScript的变量作用域深入理解
2009/10/25 Javascript
js 获取、清空input type=&quot;file&quot;的值示例代码
2014/02/19 Javascript
关于延迟加载JavaScript
2015/05/05 Javascript
Bootstrap3制作搜索框样式的方法
2016/07/11 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
Vue 进阶教程之v-model详解
2017/05/06 Javascript
vue引入ueditor及node后台配置详解
2018/01/03 Javascript
Vue 项目中遇到的跨域问题及解决方法(后台php)
2018/03/28 Javascript
nodejs中的异步编程知识点详解
2021/01/17 NodeJs
Django对数据库进行添加与更新的例子
2019/07/12 Python
利用matplotlib为图片上添加触发事件进行交互
2020/04/23 Python
Python自动发送和收取邮件的方法
2020/08/12 Python
python 实现批量图片识别并翻译
2020/11/02 Python
python爬虫多次请求超时的几种重试方法(6种)
2020/12/01 Python
介绍CSS3使用技巧5个
2009/04/02 HTML / CSS
css3动画效果小结(推荐)
2016/07/25 HTML / CSS
美国网上书店:Barnes & Noble
2018/08/15 全球购物
Stella McCartney官网:成衣、包袋、香水、内衣、童装及Adidas系列
2018/12/20 全球购物
如何查询Oracle数据库中已经创建的索引
2013/10/11 面试题
教师自我评价范文
2013/12/16 职场文书
小学生环保演讲稿
2014/04/25 职场文书
股票投资建议书
2014/05/19 职场文书
企业负责人任命书
2014/06/05 职场文书
护士实习求职信
2014/06/22 职场文书
工厂门卫的岗位职责
2014/07/27 职场文书
纺织工程专业推荐信
2014/09/08 职场文书
开展党的群众路线教育实践活动工作总结
2014/11/05 职场文书
优秀班干部主要事迹材料
2015/11/04 职场文书
大学生党课心得体会
2016/01/07 职场文书
Python开发工具Pycharm的安装以及使用步骤总结
2021/06/24 Python
恶魔之树最顶端的三颗果实 震震果实上榜,第一可以制造岩浆
2022/03/18 日漫