把分都散完。。寻求js模块化的答案

mirror84990053 2009-03-30 06:05:43

最近在研究mootools,不过很奇怪什么是模块化写法,具体的疑问就是
(
function PageInit()
{
if (navigator.userAgent.indexOf("MSIE") > 0)
{
document.attachEvent('onload', function() {PageRegistedEvent();})
}
else
{
document.addEventListener('onload', function() {PageRegistedEvent(); })
}
function PageRegistedEvent()
{
if (navigator.userAgent.indexOf("MSIE") > 0)
{
document.getElementById('comId').attachEvent('onblur', function() {});
}
else
{
document.getElementById('comId').addEventListener('onblur',function() {})
}
}
}
)();

这里的function前面合后面为什么加上这()();
这表示什么?

...全文
117 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mike_24 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 mirror84990053 的回复:]
谢谢大家!现在明解了
[/Quote]

恭喜LZ
surge0321 2009-03-30
  • 打赏
  • 举报
回复
up
mirror84990053 2009-03-30
  • 打赏
  • 举报
回复
谢谢大家!现在明解了
mirror84990053 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wangbin3961 的回复:]
顶顶
[/Quote]
小样!
jiewenxu 2009-03-30
  • 打赏
  • 举报
回复
你可以把它想像成一个箱子。

因为这是一个匿名函数,外部无法调用此括号内部的变量

故此方法经常被用来做JS函数"封包"
胡须棉花糖 2009-03-30
  • 打赏
  • 举报
回复
顶顶
jiewenxu 2009-03-30
  • 打赏
  • 举报
回复
(...)();
是一个匿名函数,任何在其第一个括号中的内容都会被立即执行。而第二个括号就是这个函数的参数

你可以尝试运行


var hello="hello!World";

(
function(msg){
alert(msg);
}
)(hello);



你可以把它抽象为
mirror84990053 2009-03-30
  • 打赏
  • 举报
回复
循例,沙发自己坐

87,910

社区成员

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

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