免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7038 | 回复: 10
打印 上一主题 下一主题

看到别人代码的一个写法 (function(){})(),怎么理解这个写法? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-25 11:13 |只看该作者 |倒序浏览
  1. (function(){
  2. ....//很多很多行,其中有很多函数和变量的定义
  3. })()
复制代码


请问这个写法有什么用处???

论坛徽章:
0
2 [报告]
发表于 2008-02-01 11:24 |只看该作者
这个代码孤掌难鸣,看不明白你要问什么

论坛徽章:
0
3 [报告]
发表于 2008-02-01 16:04 |只看该作者
可以隐藏函数的具体实现.类似于 java 里的 private 作用

或者用于一些只之用一次的函数定义上.俗称 匿名函数

论坛徽章:
0
4 [报告]
发表于 2008-02-22 23:52 |只看该作者
这一般用于自定义对象的方法:例如String.prototype.showMe=function(){alert(this);}
在执行任意字符串时都可以访问showMe方法 :"me".showMe();

论坛徽章:
0
5 [报告]
发表于 2008-03-03 13:38 |只看该作者
js代码风格松散。
(function(){..})里面定义了一个匿名函数,后面加了一个()代表立即执行。可以在()中加入参数。其实就是
function a(){...}
a();

你最好多了解一下js里面函数的深层含义,以及数组和对象的本质。

论坛徽章:
0
6 [报告]
发表于 2008-03-04 08:57 |只看该作者
这样是把function定义的函数作为了某对象的方法来使用了!
javascript其实也是面向对象的语言的!

论坛徽章:
0
7 [报告]
发表于 2008-03-06 16:58 |只看该作者
类?

论坛徽章:
0
8 [报告]
发表于 2008-07-24 11:26 |只看该作者
定义一个匿名函数, 并且调用, 就这么理解。

为什么要这么做呢,

因为函数调用的时候,会创建一个Call Object, 函数里面定义的变量会附在这个Call Object上,这样就避免了和外部的全局变量名的名字相冲突。

你可以把这个理解为, js里面的namespace。

JS推荐看《Javascript权威指南》第五版吧

论坛徽章:
0
9 [报告]
发表于 2008-07-28 11:39 |只看该作者
void function (j){
   alert(j)
}(1)
也可创建一个函数并执行之

论坛徽章:
0
10 [报告]
发表于 2008-10-10 15:55 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP