一个关于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 相关文章推荐
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
May 12 Javascript
Node.js的Web模板引擎ejs的入门使用教程
Jun 06 Javascript
jquery popupDialog 使用 加载jsp页面的方法
Oct 25 Javascript
node.js中的事件处理机制详解
Nov 26 Javascript
利用VUE框架,实现列表分页功能示例代码
Jan 12 Javascript
ES6新特性七:数组的扩充详解
Apr 21 Javascript
vue中关闭eslint的方法分析
Aug 04 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
Feb 21 Javascript
详解vue中的父子传值双向绑定及数据更新问题
Jun 13 Javascript
jQuery AJAX应用实例总结
May 19 jQuery
JavaScript中数组去重的5种方法
Jul 04 Javascript
vscode中Vue别名路径提示的实现
Jul 31 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
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
Thinkphp搭建包括JS多语言的多语言项目实现方法
2014/11/24 PHP
php判断两个日期之间相差多少个月份的方法
2015/06/18 PHP
PHP框架Laravel中使用UUID实现数据分表操作示例
2018/05/30 PHP
深入理解 PHP7 中全新的 zval 容器和引用计数机制
2018/10/15 PHP
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
javascript操作Cookie(设置、读取、删除)方法详解
2015/03/18 Javascript
Javascript中的数据类型之旅
2015/10/18 Javascript
jQuery表单事件实例代码分享
2016/08/18 Javascript
微信小程序 wxapp内容组件 icon详细介绍
2016/10/31 Javascript
js实现前端分页页码管理
2017/01/06 Javascript
jQuery实现ajax无刷新分页页码控件
2017/02/28 Javascript
JavaScript正则替换HTML标签功能示例
2017/03/02 Javascript
vue省市区三联动下拉选择组件的实现
2017/04/28 Javascript
PHP实现记录代码运行时间封装类实例教程
2017/05/08 Javascript
Js判断H5上下滑动方向及滑动到顶部和底部判断的示例代码
2017/11/15 Javascript
Layui tree 下拉菜单树的实例代码
2019/09/21 Javascript
如何在wxml中直接写js代码(wxs)
2019/11/14 Javascript
详解微信小程序之提高应用速度小技巧
2020/01/07 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
vue-router路由懒加载及实现的3种方式
2021/02/28 Vue.js
在Docker上部署Python的Flask框架的教程
2015/04/08 Python
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
Python入门之三角函数atan2()函数详解
2017/11/08 Python
PyQT实现多窗口切换
2018/04/20 Python
python opencv实现图片旋转矩形分割
2018/07/26 Python
python打印n位数“水仙花数”(实例代码)
2019/12/25 Python
Python局部变量与全局变量区别原理解析
2020/07/14 Python
专门出售各种儿童读物的网站:Put Me In The Story
2016/08/07 全球购物
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/04/11 面试题
雪山饭庄的创业计划书范文
2014/01/18 职场文书
网页美工求职信范文
2014/04/17 职场文书
听课评语大全
2014/04/30 职场文书
办公室禁烟通知
2015/04/23 职场文书
工程服务质量承诺书
2015/04/29 职场文书
学生会2016感恩节活动小结
2016/04/01 职场文书