javascript - 从其他 JS 文件访问全局变量

标签 javascript jquery global-variables

这是我的主文件:

$(document).ready(function () {
  function Page() {
    this.menu = new Menu();
    this.management = new Management();
    this.text = "text";
  }
window.Page= Page();
});

现在我想从所有其他 JS 文件访问该页面:

我试过这个:

console.log(Page.text);

给我:Uncaught ReferenceError: Page is not defined

试过这个:

console.log(window.Page.text);

给我:Uncaught TypeError: Cannot read property 'text' of undefined

我做错了什么?

最佳答案

您的问题是在 Page 函数中您没有在全局上下文中创建任何新对象。您正在创建一个新的菜单和新的管理实例,但在当前上下文中。

此外,通过调用 Window.Page = Page(),您将 Page 函数的结果(无效)分配给 window.Page 对象。

我建议你这样做:

//- from any js file 
    function createPage() {
            var newPage = { title : 'new page', count : '2' };
            return newPage;
          }
    window.Page = createPage();

...

//- and from other js file
    $(document).ready(function () {                
    alert(window.Page.title);
    });

请注意,我已将您的菜单和管理属性替换为此示例的虚拟内容。提供 sample @ this JSFiddle

更新:代码已更新以说明多个 js 文件的正确用法。

希望对你有帮助

关于javascript - 从其他 JS 文件访问全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14332901/

相关文章:

Javascript列表对象无法添加JSON? Node.JS、Firebase

javascript - 如何在 JavaScript 中选中/取消选中动态单选按钮?

javascript - 在 JSON 数组上设置结果值

c - C 中的全局数据空间不足

c - 如何在 LLVM 中定义全局变量并在 C 中使用它?

Android - 在哪里保存全局数据?

javascript - 如何调试通过 mysql2 发送的查询?

javascript - Prop 更新时重新渲染组件(w/Redux)

javascript - 如何使用 Ajax 和 footable_redraw 将新行填充到 Footable

javascript - 在 XSLT 中进行大小写选择的良好编码风格