脚本错误:变量未定义
Script error : variable is undefined
我有一个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();
}
})
相关文章:
- Socket.IO未定义变量
- 更改 Javascript 对象中所有未定义变量的值
- coffeescript,类未定义变量
- 使用下划线未定义变量时发生抛出/捕获错误
- 网络浏览器正在成为“;严格的“;用于Javascript中未定义变量的操作
- 使用window.location时未定义变量
- 传递给数据的未定义变量
- bizzare未定义变量
- JavaScript 中全局范围内存在未定义变量的原因是什么?
- JavaScript onClick 参数表示未定义变量
- 在指令中使用 $scope.$watch 处理未定义变量的替代方法
- 对于循环错误:未捕获的引用错误,未定义变量.怎么了
- JavaScript / YouTube API - 未定义变量 YT
- 未捕获的引用错误:在测试真实性时未定义变量
- 通过使用JavaScript“未定义”(变量),我们可以释放系统内存
- 与未定义变量相关的错误
- Angularjs 控制器中的未定义变量
- 角度解析:未定义变量
- BackboneJS Uncaught ReferenceError:未定义变量
- 使用Underscore JS部分和for循环的未定义变量对象