一个关于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实现标签上移、下移、置顶
Apr 26 Javascript
js+html5实现canvas绘制圆形图案的方法
Jun 05 Javascript
JS获取checkbox的个数简单实例
Aug 19 Javascript
Node.js操作redis实现添加查询功能
May 25 Javascript
Angular中响应式表单的三种更新值方法详析
Aug 22 Javascript
让网站自动生成章节目录索引的多个js代码
Jan 07 Javascript
详解Vue单元测试Karma+Mocha学习笔记
Jan 31 Javascript
Vue利用History记录上一页面的数据方法实例
Nov 02 Javascript
VUE动态生成word的实现
Jul 26 Javascript
vue自动添加浏览器兼容前后缀操作
Aug 13 Javascript
JS实现炫酷雪花飘落效果
Aug 19 Javascript
vue 插槽简介及使用示例
Nov 19 Vue.js
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
自动分页的不完整解决方案
2007/01/12 PHP
php文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
2012/06/13 PHP
php时间戳转换的示例
2014/03/31 PHP
浅谈thinkphp的实例化模型
2015/01/04 PHP
使用composer命令加载vendor中的第三方类库 的方法
2019/07/09 PHP
javascript 写类方式之三
2009/07/05 Javascript
JQuery 插件制作实践 xMarquee插件V1.0
2010/04/02 Javascript
IE6弹出“已终止操作”的解决办法
2010/11/27 Javascript
javaScript年份下拉列表框内容为当前年份及前后50年
2014/05/28 Javascript
JavaScript设计模式之原型模式(Object.create与prototype)介绍
2014/12/28 Javascript
简单的分页代码js实现
2016/05/17 Javascript
详细谈谈javascript的对象
2016/07/31 Javascript
Angular.JS学习之依赖注入$injector详析
2016/10/20 Javascript
Html5+jQuery+CSS制作相册小记录
2016/12/30 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
2017/03/04 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
2017/05/03 Javascript
PHP7新特性简述
2017/06/11 Javascript
微信小程序tabbar底部导航
2018/11/05 Javascript
vue实现移动端省市区选择
2019/09/27 Javascript
基于Vue中使用节流Lodash throttle详解
2019/10/30 Javascript
flexible.js实现移动端rem适配方案
2020/04/07 Javascript
使用python调用浏览器并打开一个网址的例子
2014/06/05 Python
将Python中的数据存储到系统本地的简单方法
2015/04/11 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
Python之循环结构
2019/01/15 Python
Python3模拟curl发送post请求操作示例
2019/05/03 Python
python Tcp协议发送和接收信息的例子
2019/07/22 Python
Python操作Mongodb数据库的方法小结
2019/09/10 Python
英国儿童家具专卖店:GLTC
2016/09/24 全球购物
德国狗狗用品在线商店:Schecker
2017/03/17 全球购物
村主任群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
后进生评语大全
2015/01/04 职场文书
远程教育集中轮训基层干部培训班学习心得体会
2016/01/09 职场文书
2017年寒假社区服务活动总结
2016/04/06 职场文书
Nginx 根据URL带的参数转发的实现
2021/04/01 Servers
windows server 2016 域环境搭建的方法步骤(图文)
2022/06/25 Servers