请高手解释一下(function(){})是什么意思?要具体点的

xkj942gry 2010-12-14 11:26:08
(function(){}),碰到这段代码,看不怎么懂,求高手解释,最好举几个例子,和它的实用
...全文
208 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
shangqiuzuidong 2010-12-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yhtapmys 的回复:]

1. 什么是自执行的匿名函数?
它是指形如这样的函数: (function {// code})();

2. 疑问
为什么(function {// code})();可以被执行, 而function {// code}();却会报错?

3. 分析
(1). 首先, 要清楚两者的区别:
(function {// code})是表达式, ……
[/Quote]

好好学习
magicxin031 2010-12-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yhtapmys 的回复:]

1. 什么是自执行的匿名函数?
它是指形如这样的函数: (function {// code})();

2. 疑问
为什么(function {// code})();可以被执行, 而function {// code}();却会报错?

3. 分析
(1). 首先, 要清楚两者的区别:
(function {// code})是表达式, ……
[/Quote]学习
wllllll 2010-12-14
  • 打赏
  • 举报
回复
// 如果执行一个方法是a(), 那么(function(){})()也可以认为是方法后加了一括号
// function(){}()会报错, 因为他先解释了括号, 才解释了方法

window.a = function(a1, a2){
//在这里会根据所执行的方法创建两个函数var a1, var a2
var a3 = "a3"//这里也手动创建一个A3
window.b = function(b1, b2){
//在方法内创建的方法是可以访问上一个方法的var函数的, 上一个function的执行就不会发生任何释放的动作
alert(a1 + "-" + a2 + "-" + a3 + "-" + b1 + "-" + b2 )
}
}(1, 2)//执行这个方法

window.b(5, 6)
hoojo 2010-12-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 xkj942gry 的回复:]
(function(){}),碰到这段代码,看不怎么懂,求高手解释,最好举几个例子,和它的实用
[/Quote]
空函数一个
xkj942gry 2010-12-14
  • 打赏
  • 举报
回复
我明白了,多谢!多谢
zhjackey 2010-12-14
  • 打赏
  • 举报
回复
楼主看看这个帖子就明白了
http://topic.csdn.net/u/20090217/13/653f7949-9e0c-4e99-adb3-dcbc99fca8d5.html?90676
mct123 2010-12-14
  • 打赏
  • 举报
回复
楼上正解:
你少了一个();
应该是(function xx(){....})();
你可以把function xx(){....}看成是
定义一个函数返回了函数名xx
就成了xx();
所以相当于定义一个xx函数并且调用它
yhtapmys 2010-12-14
  • 打赏
  • 举报
回复
1. 什么是自执行的匿名函数?
它是指形如这样的函数: (function {// code})();

2. 疑问
为什么(function {// code})();可以被执行, 而function {// code}();却会报错?

3. 分析
(1). 首先, 要清楚两者的区别:
(function {// code})是表达式, function {// code}是函数声明.
(2). 其次, js"预编译"的特点:
js在"预编译"阶段, 会解释函数声明, 但却会忽略表式.
(3). 当js执行到function() {//code}();时, 由于function() {//code}在"预编译"阶段已经被解释过, js会跳过function(){//code}, 试图去执行();, 故会报错;
当js执行到(function {// code})();时, 由于(function {// code})是表达式, js会去对它求解得到返回值, 由于返回值是一 个函数, 故而遇到();时, 便会被执行.
86y 2010-12-14
  • 打赏
  • 举报
回复
function adf(){}
嗯,自执行函数!类似于调用adf();
逍遥庄主 2010-12-14
  • 打赏
  • 举报
回复
你是后边少() 还是前边少$?
Mr-Jee 2010-12-14
  • 打赏
  • 举报
回复
你还少了个()吧
(function(){})()是自执行函数

王集鹄 2010-12-14
  • 打赏
  • 举报
回复
这叫匿名函数,其实匿名是常态

1234 这些叫匿名数字
/\d+/g 匿名正则
"1234" 匿名字符串
[1, 2] 匿名数组
{} 匿名对象
var a = "123" + "456"; // 两个匿名字符串合并
把函数和这些数据类型放平,你就理解了。
hch126163 2010-12-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yhtapmys 的回复:]

1. 什么是自执行的匿名函数?
它是指形如这样的函数: (function {// code})();

2. 疑问
为什么(function {// code})();可以被执行, 而function {// code}();却会报错?

3. 分析
(1). 首先, 要清楚两者的区别:
(function {// code})是表达式, ……
[/Quote]

说得很明白了

87,924

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧