[英]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.