访问 IIFE 中的构造函数
Accessing constructor within an IIFE
通常,在JavaScript中,我看到一个匿名函数,它立即被调用,其中包含一个构造函数。像这样:
(function(){
function Constructor{};
//code and stuff
})();
这似乎是有益的,因为它会产生闭包 (?),因此您可以将函数中的变量与全局范围分开。我难以理解的是我将如何从全局范围内访问此构造函数。例如,假设上面的代码包含在一个JavaScript文件中,该文件被带到带有脚本标签的HTML文档中。现在,在文档中(在另一个脚本标记中),如何使用匿名函数中的构造函数实例化对象?
如前所述,立即调用函数的主要目的是防止全局范围的污染。因此,IIFE 中声明的所有变量和函数只能在该函数中访问。
正如我从您的示例中了解到的那样,您正在尝试模块化您的应用程序并将各种应用程序逻辑分离到不同的脚本文件中。我建议您查看模块模式:
var Module1 = (function() {
return {
Constructor: function Constructor(){
console.log('Hi, there!');
}
}
})();
然后,您可以使用以下代码简单地访问构造函数:
var test = Module1.Constructor();
相关文章:
- ES6构造函数返回基类的实例
- 使用Google Visualization动态调用构造函数
- javascript中对象构造函数中的var属性与this.properties
- 理解typescript中的构造函数接口
- 为什么构造函数不是构造函数
- 如果在构造函数中有“返回”,则在 JavaScript 中的新运算符中做了什么
- 拦截对构造函数的调用
- 使用闭包共享构造函数参数
- 文本表示法VS.构造函数,用于在JavaScript中创建对象
- 从js引擎的角度来看闭包和构造函数是如何工作的
- 如何使用此从对象访问构造函数
- Javascript:为什么是构造函数's __proto__属性Empty(){}
- 当一个重要的构造函数参数丢失时应该发生什么
- Chrome Javascript日期构造函数错误
- 如何使用构造函数's的输出,以便将值插入到对象中
- 为什么在调用父构造函数时在[]中发送数据
- 构造函数函数闭包变量
- 访问 IIFE 中的构造函数
- IIFE创建模式-但如何支持构造函数参数
- Javascript为什么要在IIFE中包装变量或构造函数?