2012-11-16 24 views
3

(this);在JavaScript中的函数结束意味着什么?什么(这);意味着在JavaScript类结束的方法?

我有一个功能在其中的类。我可以多次拨打该班的this.outputSome和/或何时可以拨打该电话吗?

__construct = function(constructor){ 
    //some code 
}(this); 


this.outputSome = function(obj){ 
    //some 
}(this); 
+2

确定语法正确吗? (在你的情况下,'outputSome'不是函数,而是函数的返回值) –

+0

@chumkiu:与__construct一样。 –

+0

我问它是什么意思,而不是如何去做...... – Djomla

回答

8

这意味着它以this作为参数执行本身。

将括号放在函数表达式的末尾时,它是自我执行的,并在定义之后执行。 this位于括号内的事实表明它通过this作为参数。

+4

*“当您将括号放在函数声明的末尾时...”*函数*表达式*,不是函数声明。函数声明之后的Parens不会调用它。 (JavaScript [has both](http://ecma-international.org/ecma-262/5.1/#sec-13)),它们略有不同,它们是表达式,因为它们表现为右手边的值。) –

+1

谢谢,纠正了我自己。 – Maccath

+0

因此,它在定义后只执行一次? – Djomla

0

尝试搜索自我调用功能。它在加载JS时立即调用它自己的函数。

1

语法上定义一个变量:

var x = function(param) { /* do stuff */ }; 

变量是一个函数,所以你可以调用一个参数的功能,并保存在另一个变量返回值:

var y = x(my_current_param); 

压缩成一个line:

var y = function(param) { /* do stuff */ }(my_current_param);