繁体   English   中英

需要帮助以了解此立即调用的函数示例

[英]Need help to understand this immediately invoked function example

这是我在教程中找到的代码片段,但我不清楚它的用途。 这是示例:

app.js

var oojs = (function(oojs){



    return oojs;

}(oojs || {}));

我很困惑的第一部分是为什么使用与参数相同的参数来调用它?
第二个疑问是,为什么如果没有“ oojs”,则应使用对象文字作为参数来调用函数? 这有必要吗?
最后,为什么它应该返回与函数名称(oojs)相同的名称。


也许这是创建对象的一种方法,但是如果有人可以帮助我,那么我将不胜感激。

这只是JavaScript中的作用域规则。 每当创建新函数时,都会创建一个新的变量作用域。 参数名oojs确实是相同的标识符外参数oojs但它是更当地化。

这是一个简化的例子

function foo(x){
    console.log(x + 2); 
}
var x = 3; // this is a different x, it belongs to the outer scope, and not the function
foo(x); // logs 5, since x is passed to the function, then x + 2 is logged

在此代码示例中,想法是仅更改oojs如果不存在),然后将其设置为立即调用的函数表达式的返回值。 它类似于组成模块的模式 就个人而言,当涉及到很多行时,我发现语法相当混乱。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM