一个关于javascript匿名函数的问题分析


Posted in Javascript onMarch 30, 2012

匿名函数,就是没有名字的函数。如:

function (){ 
alert('a function'); 
}

但是,上面的代码会报错。firebug提示:function statement requires a name,也就是:函数必须要有个名字。

奇怪的是,如果我用一对()把这个没有名字的函数包起来,就不会报错了。如:

(function (){ 
alert('a function'); 
})

(注意包裹函数的()!).虽然这样不会报错,但谁能知道这个函数是否声明成功了呢?是不是因为根本没声明所以才不报错呢?我们这样来测试:让函数自己执行一次:
(function (){ 
alert('a function'); 
}())

可以看到,函数执行了,表明函数是存在的。

同样,如果这个时候去掉包裹函数的(),则依然会报前面那个错,函数也执行不了。。。

function (){ 
alert('a function'); 
}()

这对包裹函数的(),真有这么重要?哪位高手解释一下原理呢?
Javascript 相关文章推荐
jquery选择器之属性过滤选择器详解
Jan 27 Javascript
PhotoShop给图片自动添加边框及EXIF信息的JS脚本
Feb 15 Javascript
jQuery表单验证简单示例
Oct 17 Javascript
在原生不支持的旧环境中添加兼容的Object.keys实现方法
Sep 11 Javascript
Bootstrap图片轮播效果详解
Oct 17 Javascript
Vue的移动端多图上传插件vue-easy-uploader的示例代码
Nov 27 Javascript
Javascript中弹窗confirm与prompt的区别
Oct 26 Javascript
Vue数据绑定简析小结
May 07 Javascript
详解Vue 换肤方案验证
Aug 28 Javascript
基于layui的下拉列表的数据回显方法
Sep 24 Javascript
JS实现商品橱窗特效
Jan 09 Javascript
JavaScript canvas绘制折线图
Feb 18 Javascript
JavaScript 基础篇(一)
Mar 30 #Javascript
js确定对象类型方法
Mar 30 #Javascript
js 浏览器事件介绍
Mar 30 #Javascript
js中eval详解
Mar 30 #Javascript
关于jquery性能最佳实践的讨论,与求教
Mar 30 #Javascript
从面试题学习Javascript 面向对象(创建对象)
Mar 30 #Javascript
jQuery 自定义函数写法分享
Mar 30 #Javascript
You might like
JavaScript创建命名空间的5种写法
2014/06/24 PHP
PHP互换两个变量值的方法(不用第三变量)
2016/11/14 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
2010/12/30 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
2013/07/05 Javascript
css配合jquery美化 select
2013/11/29 Javascript
SeaJS入门教程系列之完整示例(三)
2014/03/03 Javascript
Javascript简单实现面向对象编程继承实例代码
2015/11/27 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
2015/12/03 Javascript
js实现抽奖效果
2017/03/27 Javascript
vue.js组件之间传递数据的方法
2017/07/10 Javascript
浅谈angular2 组件的生命周期钩子
2017/08/12 Javascript
浅谈vue中数据双向绑定的实现原理
2017/09/14 Javascript
vue父组件点击触发子组件事件的实例讲解
2018/02/08 Javascript
详解使用vue-cli脚手架初始化Vue项目下的项目结构
2018/03/08 Javascript
详解node Async/Await 更好的异步编程解决方案
2018/05/10 Javascript
Vue 实现展开折叠效果的示例代码
2018/08/27 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
2019/02/18 Javascript
通过layer实现可输入的模态框的例子
2019/09/27 Javascript
JavaScript生成随机验证码代码实例
2019/09/28 Javascript
Vue.js中的高级面试题及答案
2020/01/13 Javascript
[01:40]2014DOTA2国际邀请赛 三冰SOLO赛后采访恶搞
2014/07/09 DOTA
[57:50]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第二局
2016/03/05 DOTA
python实现求解列表中元素的排列和组合问题
2018/03/15 Python
python处理csv中的空值方法
2018/06/22 Python
python opencv人脸检测提取及保存方法
2018/08/03 Python
django解决订单并发问题【推荐】
2019/07/31 Python
HTML5 canvas基本绘图之图形组合
2016/06/27 HTML / CSS
中国海淘族值得信赖的海淘返利网站:55海淘
2017/01/16 全球购物
意大利中国电子产品购物网站:Geekmall.com
2019/09/30 全球购物
英语专业个人求职信范文
2014/02/01 职场文书
联谊会主持词
2014/03/26 职场文书
《果园机器人》教学反思
2014/04/13 职场文书
党支部审查意见
2015/06/02 职场文书
入党自传范文2015
2015/06/26 职场文书
解决SpringCloud Feign传对象参数调用失败的问题
2021/06/23 Java/Android