}()如何理解

Formular1 2009-05-27 11:48:17
Javascript,跟在

function ()
{
var ...
function1 ();
}()

最后的()如何理解。
()后面是否要;
...全文
92 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Formular1 2009-06-11
  • 打赏
  • 举报
回复
大牛们请再将“强制表达式”解释得清楚一点。
Formular1 2009-06-11
  • 打赏
  • 举报
回复
顶一下。
薪水 2009-05-31
  • 打赏
  • 举报
回复
学习了
s_liangchao1s 2009-05-28
  • 打赏
  • 举报
回复
将"test", 0, {a : 1})作为参数传入当前匿名函数 并执行
Formular1 2009-05-28
  • 打赏
  • 举报
回复
这个如何理解:
一个是在function之前的(,另一个是}后面的test。


<script type="text/javascript">
<!--
(function(s, n, o) {
alert(n);

if (n < 5) {
n ++;
arguments.callee.apply(this, arguments);
}
})("test", 0, {a : 1});
//-->
</script>
cqdyh 2009-05-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 he_8134 的回复:]
var func=function(){alert(123)};
func();

等同于~

function(){alert(123)}()
[/Quote]
.
dh20156 2009-05-28
  • 打赏
  • 举报
回复
当()用于强制表达式运算时,括号总是会强制它内部的代码当做表达式来运算。比如:


var str1 = typeof(123);//()将123作为单值表达式运算,运算结果还是123;

var str2 = ('string',123);//()将两个单值表达式做连续运算,连续运算符","的返回值是最后一个表达式的值,所以这里返回123;

(function(){//....})//返回一个匿名的function
dh20156 2009-05-28
  • 打赏
  • 举报
回复
(function(){
/***/
})()

(function...) //强制表达式运算,运算结果为function;
function()//词法元素,“虚拟参数表”;
()//函数调用;

参见周爱民JavaScript语言精髓与编程实践"()"的二义性。
licip 2009-05-28
  • 打赏
  • 举报
回复
{a :1}这是一个对象,当着一个参数。就是那个o呀。
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 Formular1 的回复:]
引用 4 楼 Formular1 的回复:
这个如何理解:
一个是在function之前的(,另一个是}后面的test。

JScript code <script type="text/javascript"> <!--(function(s, n, o) {
alert(n);if(n <5) {
n++;
arguments.callee.apply(this, arguments);
}
})("test",0, {a :1});//--> </script>


这个是匿名函数,关键是后面的("test",0, {a :1})理解不了,{a :1}对应于哪个参数。
[/Quote]
这里会相当与4个参数
lord_is_layuping 2009-05-28
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 dh20156 的回复:]
(function(){
/***/
})()

(function...) //强制表达式运算,运算结果为function;
function()//词法元素,“虚拟参数表”;
()//函数调用;

参见周爱民JavaScript语言精髓与编程实践"()"的二义性。
[/Quote]

这句:
(function...) //强制表达式运算,运算结果为function;
啥意思,我还是不明白?
pstrunner 2009-05-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bing475879749 的回复:]
包闭?????
[/Quote]
闭包。

例如:
void{}();
Formular1 2009-05-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 Formular1 的回复:]
这个如何理解:
一个是在function之前的(,另一个是}后面的test。

JScript code<script type="text/javascript"><!--(function(s, n, o) {
alert(n);if(n<5) {
n++;
arguments.callee.apply(this, arguments);
}
})("test",0, {a :1});//--></script>
[/Quote]

这个是匿名函数,关键是后面的("test",0, {a :1})理解不了,{a :1}对应于哪个参数。
he_8134 2009-05-27
  • 打赏
  • 举报
回复
var func=function(){alert(123)};
func();

等同于~

function(){alert(123)}()
bing475879749 2009-05-27
  • 打赏
  • 举报
回复
包闭?????

87,910

社区成员

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

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