浅谈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 相关文章推荐
JS 控件事件小结
Oct 31 Javascript
jQuery语法总结和注意事项小结
Nov 11 Javascript
jQuery中filter()和find()的区别深入了解
Sep 25 Javascript
JavaScript伸缩的菜单简单示例
Dec 03 Javascript
ionic实现底部分享功能
May 11 Javascript
JS中touchstart事件与click事件冲突的解决方法
Mar 12 Javascript
微信小程序websocket聊天室的实现示例代码
Feb 12 Javascript
JS中call()和apply()的功能及用法实例分析
Jun 28 Javascript
bootstrap-table+treegrid实现树形表格
Jul 26 Javascript
浅谈layui数据表格判断问题(加入表单元素),设置单元格样式
Oct 26 Javascript
微信小程序实现树莓派(raspberry pi)小车控制
Feb 12 Javascript
Vue为什么要谨慎使用$attrs与$listeners
Aug 27 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
echo, print, printf 和 sprintf 区别
2006/12/06 PHP
重新封装zend_soap实现http连接安全认证的php代码
2011/01/12 PHP
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
2014/11/20 PHP
PHP中使用正则表达式提取中文实现笔记
2015/01/20 PHP
[原创]php求圆周率的简单实现方法
2016/05/30 PHP
Yii实现Command任务处理的方法详解
2016/07/14 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
2019/10/15 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
2020/04/27 PHP
jQuery动态添加的元素绑定事件处理函数代码
2011/08/02 Javascript
js函数参数设置默认值的一种变通实现方法
2014/05/26 Javascript
用NodeJS实现批量查询地理位置的经纬度接口
2016/08/16 NodeJs
微信小程序 Record API详解及实例代码
2016/09/30 Javascript
three.js中文文档学习之如何本地运行详解
2017/11/20 Javascript
微信小程序带动画弹窗组件使用方法详解
2018/11/27 Javascript
小程序开发之模态框组件封装
2020/04/23 Javascript
JS实现电脑虚拟键盘的操作
2020/06/24 Javascript
微信小程序实现多行文字滚动
2020/11/18 Javascript
Python中函数的参数传递与可变长参数介绍
2015/06/30 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
用django-allauth实现第三方登录的示例代码
2019/06/24 Python
关于Numpy数据类型对象(dtype)使用详解
2019/11/27 Python
HTML5 本地存储实现购物车功能
2017/09/07 HTML / CSS
基于HTML5 Canvas的3D动态Chart图表的示例
2017/11/02 HTML / CSS
葡萄牙航空官方网站:TAP Air Portugal
2019/10/31 全球购物
几个常见的消息中间件(MOM)
2014/01/08 面试题
药学专业个人自我评价
2013/11/11 职场文书
四年级数学教学反思
2014/02/02 职场文书
保险内勤岗位职责
2014/04/05 职场文书
教研活动总结
2014/04/28 职场文书
2014年十一国庆节活动方案
2014/09/16 职场文书
小学校园广播稿(3篇)
2014/09/19 职场文书
2015年街道除四害工作总结
2015/05/15 职场文书
火烧圆明园观后感
2015/06/03 职场文书
创新创业项目计划书该怎样写?
2019/08/13 职场文书
创业计划书之酒吧
2019/12/02 职场文书
go语言求任意类型切片的长度操作
2021/04/26 Golang