2012-11-21 297 views
1

我有一个JavaScript源代码,我不明白这个。你能帮我吗,这是什么意思?这是什么意思?

Partnerek = (function() { 

    Partnerek = function() { } 

    //there are functions in this way 
    //I think this is a public function 
    Partnerek.foo = function foo() 
    { 
     //code 
    } 

    //there are functions in this way 
    //this is a non public function 
    function foosecondway() 
    { 
     //code 
    } 

    return Partnerek; 
})() 

它看起来像一个类,但这不是一个类。

  1. 这是什么?
  2. 为什么程序员是这样写的?
  3. 这是一个好方法吗?
  4. 什么是回报值?
  5. 代码中的两个函数“参数”是否相同?
+0

这是相当典型的现代Javascript代码。你正在寻找一个广泛的Javascript教程?网上有很多指南和教程,但是StackOverflow并不是寻找个人辅导的好地方。 – lanzz

回答

1

我不确定,但对我来说,它看起来像是一个类的构建,它执行自己。所以,如果你会叫

var test = new Partnerrek() 

这个变量将成为这个类的一个实例(这是通过返回完成)和构造

Partnerek = function(){} 

将被调用。

+0

为什么这样好?这是慢的,不是吗?当我打电话时,这总是调用函数,不是吗?我已经测试过,如果我将这个partnerek提供给对象,会发生什么。我可以像一个班级那样使用它,但是当我这样做时,我没有使用新的世界。 nom我有点困惑?你能解释一下吗?或者说一些关于它的事情。简单的课堂会更快吗? – user1693057

+1

准确地说,简单课是什么意思?正如Lanzz评论的那样,这是一种建立js级的现代方式。我一直在检查它,我认为通过包装一个函数,这个类将有闭包和私有作用域,这可能会非常方便,也许这解释了它好一点:http:// stackoverflow .COM /问题/ 1114024 /构造型的JavaScript对象 –