【发布时间】:2014-05-14 17:13:13
【问题描述】:
我有一个声明以下变量的 javascript 文件:
var 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.
});
};
【问题讨论】:
-
这种类型的ReferenceError通常发生在你
"use strict";模式没有var -
您发布的代码不会产生该错误。我假设您正在尝试访问不在范围内的
page。您应该在尝试访问变量的位置发布代码。我们需要一个更完整的例子。 -
@FelixCling 你所说的证明jsfiddle.net/5A6f4
-
所有文件是如何组合在一起的?您确定要在第二个文件之前加载 page.js 吗?通常,如果您要在多个文件上定义一个模块,您会在每个文件的顶部有
var page = page || {};,以便它们可以按任何顺序包含。 -
似乎第三个文件在其他文件之前加载,或者在第二个文件加载后覆盖了
page。
标签: javascript variables undefined scope