![](/img/trans.png)
[英]is it possible to access variables and functions in one IIFE in another IIFE
[英]How to access variables inside one IIFE from another using templates?
base.html
文件中有一些逻辑。 我想简化其对应的js
文件,并将一些功能放在一边。
是否有访问一个内部变量的方式IIFE ( main.js
从另一个() additional.js
)?
base.html
<body>
<script src="main.js"></script>
{% block extra_scripts %}
{% endblock %}
</body>
main.js
(function(){
var test = 123;
})();
extension.html
{% extends "base.html" %}
{% block extra_scripts %}
<script src="additional.js"></script>
{% endblock %}
Additional.js
(function(){
alert(test);
})();
这个解决方案给了我不确定的东西。
如果将其转换为js模块,则可以执行此操作。
var mainModule = (function(){
var test = 123;
return {
getTest: function() { return test;}
}
})();
然后在Additional.js中
mainModule.getTest();
在函数内部定义的变量仅在该函数中具有作用域,而不能在外部访问。
您可以全局声明变量test
一种方法是在外部声明变量,并使它成为全局变量,以供其他函数访问。
var test;
(function(){
test = 123;
})();
现在,当
(function(){
alert(test);
})();
运行test
在范围内,因此可以访问。 但是,需要维护订单,否则测试将是undefined
,因为尚未定义。
在函数级别范围内的变量不能在外部访问。 在外部定义变量或将其添加到window对象以进行访问。
(function(){
window.test = 123;
})();
(function(){
alert(test);
})();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.