我在学习Javascript时会看到一些代码片段,我不确定,请问您这个结构究竟是什么,以及何时使用?
(function abc()
{
//action code here
})();
示例
(function test() {
alert(1);
})();
非常感谢。
答案 0 :(得分:1)
你能做的最好的就是阅读这篇文章:
Smalle引用:
匿名闭包
这是使一切成为可能的基本结构,而且实际上是JavaScript的最佳功能。我们将简单地创建一个匿名函数,并立即执行它。在函数内部运行的所有代码都存在于一个闭包中,它在我们的应用程序的整个生命周期中提供隐私和状态。
(function () {
// ... all vars and functions are in this scope only
// still maintains access to all globals
}());
但是真的要仔细阅读这篇文章并观察我们所拥有的内容,感谢其他人,他们为我们描述了JS模式......
因为更重要的部分是MODULE模式
模块导出
有时你不只是想使用全局变量,而是想要声明它们。我们可以通过使用匿名函数的返回值导出它们来轻松完成此操作。这样做将完成基本模块模式,所以这是一个完整的例子:
var MODULE = (function () {
var my = {},
privateVariable = 1;
function privateMethod() {
// ...
}
my.moduleProperty = 1;
my.moduleMethod = function () {
// ...
};
return my;
}());