浅谈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 相关文章推荐
JavaScript 学习初步 入门教程
Mar 25 Javascript
javascript向flash swf文件传递参数值注意细节
Dec 11 Javascript
js操作CheckBoxList实现全选/反选(在客服端完成)
Feb 02 Javascript
一个简单的JS时间控件示例代码(JS时分秒时间控件)
Nov 22 Javascript
使用jQuery.wechat构建微信WEB应用
Oct 09 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
Mar 11 Javascript
介绍JavaScript的一个微型模版
Jun 24 Javascript
jQuery点击按钮弹出遮罩层且内容居中特效
Dec 14 Javascript
JS动态改变浏览器标题的方法
Apr 06 Javascript
浅谈javascript中执行环境(作用域)与作用域链
Dec 08 Javascript
动态内存分配导致影响Javascript性能的问题
Dec 18 Javascript
vue中的计算属性和侦听属性
Nov 06 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
Jquery幻灯片特效代码分享--鼠标点击按钮时切换(1)
2015/08/15 Javascript
浅析JavaScript作用域链、执行上下文与闭包
2016/02/01 Javascript
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
JavaScript闭包_动力节点Java学院整理
2017/06/27 Javascript
基于BootStrap实现简洁注册界面
2017/07/20 Javascript
VUE中使用Vue-resource完成交互
2017/07/21 Javascript
js使用highlight.js高亮你的代码
2017/08/18 Javascript
深入浅析Vue中的 computed 和 watch
2018/06/06 Javascript
Vue中mintui的field实现blur和focus事件的方法
2018/08/25 Javascript
使用p5.js临摹动态图形
2019/10/23 Javascript
javascript全局自定义鼠标右键菜单
2020/12/08 Javascript
token 机制和实现方式
2020/12/15 Javascript
Python __setattr__、 __getattr__、 __delattr__、__call__用法示例
2015/03/06 Python
Python读写ini文件的方法
2015/05/28 Python
Django中的“惰性翻译”方法的相关使用
2015/07/27 Python
Python中的数学运算操作符使用进阶
2016/06/20 Python
Python简单获取自身外网IP的方法
2016/09/18 Python
详解python中的装饰器
2018/07/10 Python
Python实现的对一个数进行因式分解操作示例
2019/06/27 Python
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
CSS3 制作旋转的大风车(充满童年回忆)
2013/01/30 HTML / CSS
美国波西米亚风格精品店:South Moon Under
2019/10/26 全球购物
会计大学生职业生涯规划书范文
2014/01/13 职场文书
计算机网络专业自荐信
2014/07/04 职场文书
国家奖学金获奖感言
2014/08/16 职场文书
安全月宣传标语
2014/10/07 职场文书
高中生逃课检讨书
2014/10/10 职场文书
2014幼儿园卫生保健工作总结
2014/12/05 职场文书
毕业论文致谢信
2015/05/14 职场文书
初婚未育证明样本
2015/06/18 职场文书
会议承办单位欢迎词
2015/09/30 职场文书
爱岗敬业先进典型事迹材料(2016推荐版)
2016/02/26 职场文书
餐饮行业关注的9大营销策略
2019/08/26 职场文书
PHP遍历数组的6种方式总结
2021/11/17 PHP
java executor包参数处理功能 
2022/02/15 Java/Android
详解Golang如何优雅的终止一个服务
2022/03/21 Golang