Javascript中的NameSpaces-将其用于两个不同的JS文件
NameSpaces in Javascript - Using it for Two diff JS files
我在一个文件夹中有两个不同的JS文件。我给了第一个JS文件一个名称空间var fooMYNS = {};
,并使用该命名空间声明了一些变量CCD_ 2。现在我推送了数组中的一些元素,比如{1,2,3,4}
。我想在第二个JS文件中使用这个数组的详细信息。我如何使用这个名称空间来完成它。
注意:第二个只在第一个JS文件之后调用/执行,所以数组赋值已经完成。
或者我们可以在没有名称空间的情况下做到这一点?我们接受任何建议。谢谢
当两个文件都包含在页面中时,任何对象之外用var声明的任何内容都包含在全局命名空间中,并且可以在任何地方访问。您应该能够从页面上的任何位置轻松访问fooMYNS。
看看另一个问题/答案:如何在JavaScript中声明命名空间?
然而,我看到的一种非常好的显式声明应该共享的东西的方法来自node.js,并在Coffeescript中得到了很好的实现。如下所述:我如何在Coffeescript中定义全局变量?
root = exports ? this
root.foo = -> 'Hello World'
Coffeescapet自动将所有单独的文件包装在一个闭包中,这确实有助于避免污染全局javascript命名空间。因此,它迫使您使用上面的习惯用法,只公开您想要的API。
上面的代码首先检查导出(node.js全局(,否则使用闭包范围(this(并显式地将方法(foo(附加到该全局空间。
现在,在任何其他文件中,foo
都将是全局可访问的,但任何其他未明确设置为全局的文件都将不可访问。
这假设您的问题中至少有一个拼写错误-{1,2,3,4}既不是有效的数组,也不是有效的对象。
第一个文件:
var fooMYNS = {};
fooMYNS.newAr = []; // It's faster to use an empty array than the Array constructor.
fooMYNS.newAr = [1,2,3,4]; // Not sure what happens before this that you can't just assign these values to the array in the first place.
第二个文件:
console.log(fooMYNS.newAr); // This outputs to the browser console [1,2,3,4]
相关文章:
- 如何使用grunt durandal输出两个文件
- 使用 Node js 从另一个文件调用两个文件
- 在两个文件之间共享按钮变量
- 如何将包含在 eval 方法中的两个文件作为线程运行
- 如何将代码分成两个文件,并仍然使其在node.js中工作
- Ajax 调用时出错 ->发送两个文件而不是一个文件
- 创建一个包含两个文件 json 的 Angularjs 过滤器
- JavaScript:如何最有效地管理跨两个文件的数据导入
- 两个文件使用超级测试与摩卡导致 EADDRINUSE
- 我可以在同一本地网络但不在同一主机中的两个文件之间使用PostMessage吗
- 从Array结果中获取两个文件
- 两个文件输入表单中的文件值相同
- 简化php表单验证-将两个文件合并为一个文件
- 如何检查两个文件是否具有相同的内容
- 复制/b除两个文件外的同一类型的所有文件
- JavaScript/PowerShell:比较两个文件并将结果保存到文本文件
- Gulp-用Gulp ruby sass创建两个文件
- 如何在Node中的两个文件之间共享模块私有数据
- 在JavaScript中连续播放两个文件
- 如何链接多个javascript文件,其中两个文件都有onload事件