一个关于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 相关文章推荐
有趣的javascript数组定义方法
Sep 10 Javascript
有关json_decode乱码及NULL的问题
Oct 13 Javascript
IE和Firefox之间在JavaScript语法上的差异
Apr 22 Javascript
Canvas 制作动态进度加载水球详解及实例代码
Dec 09 Javascript
JS实现Ajax的方法分析
Dec 20 Javascript
thinkjs之页面跳转同步异步操作
Feb 05 Javascript
原JS实现banner图的常用功能
Jun 12 Javascript
详解Webpack-dev-server的proxy用法
Sep 08 Javascript
JS如何获取地址栏的参数实例讲解
Oct 06 Javascript
jQuery实现数字华容道小游戏(实例代码)
Jan 16 jQuery
uniapp实现可滑动选项卡
Oct 21 Javascript
React列表栏及购物车组件使用详解
Jun 28 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
如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量的
2007/03/06 PHP
PHP下通过系统信号量加锁方式获取递增序列ID
2009/09/25 PHP
xml在joomla表单中的应用详解分享
2012/07/19 PHP
thinkphp表单上传文件并将文件路径保存到数据库中
2016/07/28 PHP
PHP number_format函数原理及实例解析
2020/07/14 PHP
让复选框只能选择一项的方法
2013/10/08 Javascript
文本框文本自动补全效果示例分享
2014/01/19 Javascript
js+HTML5实现视频截图的方法
2015/06/16 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
2016/05/31 Javascript
Nodejs从有门道无门菜鸟起飞必看教程
2016/07/20 NodeJs
Bootstrap popover用法详解
2016/12/22 Javascript
一个例子轻松学会Vue.js
2017/01/02 Javascript
jQuery弹出层插件popShow用法示例
2017/01/23 Javascript
Javascript中的prototype与继承
2017/02/06 Javascript
vue router路由嵌套不显示问题的解决方法
2017/06/17 Javascript
js实现鼠标跟随运动效果
2020/08/02 Javascript
用jquery获取select标签中选中的option值及文本的示例
2018/01/25 jQuery
Angular @HostBinding()和@HostListener()用法
2018/03/05 Javascript
vue.js的computed,filter,get,set的用法及区别详解
2018/03/08 Javascript
详解在vue-cli项目下简单使用mockjs模拟数据
2018/10/19 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
2020/07/14 Javascript
[02:16]深扒TI7聊天轮盘语音出处2
2017/05/11 DOTA
Python的Flask框架与数据库连接的教程
2015/04/20 Python
详解Python的Django框架中的中间件
2015/07/24 Python
浅谈python数据类型及类型转换
2017/12/18 Python
python中set()函数简介及实例解析
2018/01/09 Python
Python3中的json模块使用详解
2018/05/05 Python
Python PO设计模式的具体使用
2019/08/16 Python
Pandas实现dataframe和np.array的相互转换
2019/11/30 Python
美国男女折扣服饰百货连锁店:Stein Mart
2017/05/02 全球购物
英国景点门票网站:attractiontix
2019/08/27 全球购物
《跟踪台风的卫星》教学反思
2014/04/10 职场文书
新文化运动的基本口号
2014/06/21 职场文书
人身意外保险授权委托书
2014/10/01 职场文书
2015年推广普通话演讲稿
2015/03/20 职场文书
听证通知书
2015/04/24 职场文书