基本上,我有两个.js文件,让它是A.js和B.js,我有这样的代码
A.js
function details(age,address,name){
//some code
//some code
getData(age);
//some code
}
function getData(ag){
return ag;
}B.js
在这里,我如何访问getData(?) ??,我不想使用全局变量,我只想知道它是否可能以任何方式存在,或者选择全局变量是最后的选择。
发布于 2017-08-27 16:01:51
到目前为止,普通的JavaScript还没有为JS资源提供内置的名称空间管理。
最近,导入特征出现。
import语句用于导入在外部模块、脚本等中定义和导出的函数、对象或原语。
但要小心:
这个特性现在才刚刚开始在浏览器中实现。它是在许多转发器中实现的,例如transpilers、Babel、Rollup和Webpack。
在A.js中,您可以在客户需要时导出getData():
function details(age,address,name){
//some code
//some code
getData(age);
//some code
}
export function getData(ag){
return ag;
}在客户端代码中可以导入它:
import { getData} from '/modules/A.js';
getData(...);如果您希望完全支持普通的JS,JS库的作者使用的一个经典解决方法是使用一个全局变量,该变量保存客户端所需的所有公共资源。
通过这种方式,可以减少与其他库或客户端资源发生冲突的风险。
如果可以更改这些文件的代码,则可以定义一个全局变量:
var myNameSpace = {
details : function(age,address,name){
//some code
//some code
getData(age);
//some code
},
getData : function getData(ag){
return ag;
}
....
};并以单个全局变量:myNameSpace作为前缀来访问该函数。
myNameSpace.getData(...);发布于 2017-08-27 17:50:17
在A.js文件中,将返回的数据存储在本地/会话存储中,即ag。您可以在B.js中访问该数据,该数据将位于本地/会话存储中。
localStorage.setItem("key", "value");https://stackoverflow.com/questions/45906774
复制相似问题