本文介绍了为什么以及如何在javascript中使用IIFE的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在此示例代码中:
(function(){
var obj = function() {
};
obj.prototype.hello = function(){
console.log('Hello World!');
};
})();
我看到很多图书馆这样做。为什么要将代码包装在立即调用函数表达式(IIFE)一个好的做法?我如何在外面访问这个对象,比如jquery呢?
I see a lot of libraries doing this. Why is wrapping your code in an Immediately Invoked Function Expression (IIFE) a good practice? And how do I access this object outside, like jquery does?
因为如果我这样做了:
var test = new obj();
浏览器显示obj未定义。
The browser displays that obj is undefined.
推荐答案
避免污染外部范围。你确定没有任何变量会脱离它。
但是,您确实需要将其导出。从内部使用 window.obj = obj;
(使其成为全局)或返回它:
To avoid polluting outer scope. You're sure no variables are going to "get out" of it.But yes, you do need to export it. Either using window.obj = obj;
from inside (to make it global) or return it :
var obj = (function() {
var obj = function() {};
obj.prototype.sayHello = function() {};
return obj;
})();
这篇关于为什么以及如何在javascript中使用IIFE的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!