如何在两个脚本之间正确传递数据。
在这种特殊情况下,我在一个脚本中有一个元素,但我想将它附加到另一个脚本中。
我能做到这一点的最简单方法是使用全局窗口对象作为中间人。
但全局不是最佳实践。
将此元素传递给另一个脚本的正确方法是什么?
这两个脚本都封装在模块模式中。
脚本 0 创建元素点
var element = document.createElement( "div" );
element.innerHTML = response_text;
脚本 1 添加元素点
Vi.sta = {
// implemented in the boot loader - shared global space - appended child already - you don't have to append until now.
// Static data has already been composed.
// Pull off window and append or best practice
};
两者都封装在模块模式中
(function(){
// the code here
})()
最佳答案
所有 JS 脚本都在全局范围内运行。当文件被下载到客户端时,它们在全局范围内被解析。
如果你有
// File_1.js
var myObj = { colour : "blue" };
没有什么能阻止你这样做:
// File_2.js
var otherObj = { colour : myObj.colour };
只要 File_1.js 在 File_2.js 之前加载
如果您使用命名空间,即:MYNAMESPACE = {};
并且每个文件都通过模块扩展您的命名空间(而不是指从立即调用函数返回接口(interface)的“模块模式”),然后检查模块的存在。
如果您正在为命名空间应用程序编写模块,并且确实需要从一个模块到另一个模块访问变量,那么您应该为此提供一个接口(interface)
。
如果您是SANDBOXING
模块,那么您需要为它们提供一个类似于service-locator
或 的
,或者开发一个基于代理
"registry"mediator-pattern
的messaging-system
。
关于javascript - 脚本之间的通信 |三种方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12097381/