首页 新闻 搜索 专区 学院

Javascript OO 问题

0
悬赏园豆:10 [已解决问题] 解决于 2012-04-17 08:19

在看javascript的源码时,经常看到有以下写法,

var Point;

(function()

{

    Point = function (x, y)

    {

         this.x = x;

     this.y = y;

    };

})();

请教各位,(function(){})(); 这样的写法是什么意思? 后面的原理是什么?

用情的主页 用情 | 初学一级 | 园豆:186
提问于:2012-04-16 10:28
< >
分享
最佳答案
1
(function()
 
{
 
    Point = function (x, y)
 
    {
 
         this.x = x;
 
     this.y = y;
 
    };
 
})//这个是匿名方法,相当于function A()相当于function A()中的A
()//这个里面是参数列表,但这个函数参数为空而已所以直接(),A();
//例如:我要用一个函数
function A(a,b)
{return a+b}
var a=A("that","ok!");
//同理使用匿名函数可以这样写
var b=function(a,b)
{return a+b}("that","ok!");
收获园豆:6
Halower | 小虾三级 |园豆:1723 | 2012-04-16 13:26
//同理使用匿名函数可以这样写
var b=function(a,b)
{return a+b}("that","ok!");

上面这个可以理解。 那为什么匿名函数还需要再加上一层()? 为什么不是
var b=( function(a,b)
{return a+b}) ("that","ok!");

还请指教!
 
用情 | 园豆:186 (初学一级) | 2012-04-16 17:06
其他回答(4)
0

这是匿名闭包,这种写法我也不是特别清楚,你可以看看这两篇文章:

深入理解JavaScript系列(3):全面解析Module模式

深入理解JavaScript系列(2):揭秘命名函数表达式

artwl | 园豆:16536 (专家六级) | 2012-04-16 10:34
1

function(){}是一个匿名函数  用括号括起来后边再加()是调用

就是声明了一个匿名函数并且立即调用。

作用一般是为了产生一个闭包。

收获园豆:4
alexstrasza | 园豆:115 (初学一级) | 2012-04-16 11:40
0

关注学习。。。。

KivenRo | 园豆:1722 (小虾三级) | 2012-04-16 12:57
0

理解了闭包,这个就不难理解。

水晶途途 | 园豆:1434 (小虾三级) | 2012-04-16 14:41

谢谢,对脚本还不是太熟。有什么好资料?

支持(0) 反对(0) 用情 | 园豆:186 (初学一级) | 2012-04-16 17:06

@用情: 一楼介绍的“汤姆大叔的博客”就很不错啊。

http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html

支持(0) 反对(0) 水晶途途 | 园豆:1434 (小虾三级) | 2012-04-16 17:12

@用情: javascript王者归来,javascript语言精粹!在网上都可以下载到的!!

支持(0) 反对(0) unbreakable | 园豆:111 (初学一级) | 2012-04-16 22:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册