2012-07-16 51 views
-2

我想知道下面的javascript函数之间的区别。有人能帮助我们区别什么,在什么情况下我们需要使用这两种功能?跟jquery和requireJS函数的区别

define(function() { 

}); 

第二个是自我执行功能是低于

(function() { })(); 

更新

我使用requireJS

+0

第一个甚至在香草JS中有效吗?或者你是否使用jQuery以外的库/插件? – 2012-07-16 03:31:31

+0

'define'不是Javascript关键字或内置函数。你使用'requireJS'吗?如果是这样,请参阅[这个问题](http://stackoverflow.com/questions/8350699/explanation-of-define-of-the-requirejs-library)。 – 2012-07-16 03:33:46

+0

是的,我正在使用requireJS – 2619 2012-07-16 03:35:27

回答

2

你的问题标题中提到了 “jQuery函数”,但在你显示的代码中没有jQuery。

代码的第一位:

define(function() { 

}); 

...调用一个名为define函数,并传递一个匿名函数作为参数

第二(某种回调的?):

(function() { })(); 

定义一个匿名函数并立即调用它。

“我们需要使用这两种功能有什么区别和什么情况?”

请教关于何时使用define()功能指导RequireJS API文档。至于第二个例子中的直接调用匿名函数,您可能会使用这种结构的原因有很多,例如,一个常见的原因是创建工作变量和/或嵌套函数而不创建全局变量。

要我想比较这两种方式(没有更多的情况下,无论如何)不会做出比比较setTimeout(function(){ },1)(function() { })();(或比较其他任何随机函数,它接受一个函数作为参数)任何更有意义。