脚本错误:变量未定义

Script error : variable is undefined

本文关键字:未定义 变量 脚本错误      更新时间:2023-09-26

我有一个javascript文件,声明下面的变量:

var page = page || {};

上面的文件包含在另一个想要使用page变量的javascript文件中。当我试着输入它时,我可以在智能感知中看到这个变量。

但是在运行时,我得到错误:

页面未定义

我发布了更详细的代码:

第一个文件是page.js,只有一行

var page = page || {};

第二个文件使用上面的变量:

/// <reference path="page.js" />
page.current = function () {
};

有最后的第三个文件:

/// <reference path="../pagescripts/page-current.js" />
define(function () {
var Agencies = function (app, datacontext, logger, config, router) {
     var myPage = page.current;
     //The above line throws error saying page is not defined.
});
};

此模式通常用于跨多个文件使用相同的名称空间对象。通过把

var page = page || {}; 
在每个文件的顶部的

,可以保证page将指向相同的对象,如果代码允许,可以以任何顺序加载它们。

// page1.js
var page = page || {};
page.doSomething = function() {};
// page2.js
var page = page || {}
page.doSomethingElse = function() {};
// page3.js
var page = page || {};
page.doThirdThing = function() {};

确保在使用该变量的文件/脚本标记之前加载定义该变量的javascript文件

如果由于某种原因无法更改脚本文件加载的顺序,则可以使用dom onready函数访问该变量。根据经验,您应该延迟执行逻辑,直到dom准备好。例如,在jQuery中你可以使用

$(document).ready(function() {
// application init logic
// or start execution of functions
  if(page && page.whatever) {
      page.whatever();
  }
})