为什么页面上设置的变量在document.ready范围内不可用?

时间:2010-05-14 19:44:06

标签: javascript jquery variables scope

我有一个包含的javascript文件,用于初始化一个名为“widgets”的空数组对象

var Widgets = {};

function Widget(a,b,c){
this.a = a;
...
}

同样包括一堆函数原型被定义为将小部件信息添加到小部件:

Widget.prototype.addWidgetInfo(a,b,c){
 this.info.a = a;
 this.info.b = b;
 ...
}

还有许多函数支持文件末尾的document.ready(){}块。

在页面正文中,为每个小部件输出一行js输出以及调用此原型函数

Widgets[id] = new Widget();
Widgets[id].addwidgetInfo("bla","bla","bla");

但是当文档就绪时调用

Widgets [id] .info是一个空数组....

我无法弄清楚为什么这个数据不可用!请帮忙

1 个答案:

答案 0 :(得分:2)

给出的示例中有一些错误。我不确定它们是你的问题,还是你的例子中的问题:

  • addWidgetInfo未正确声明。应该是:

    Widget.prototype.addWidgetInfo = function(a,b,c){
    
  • this.info未初始化。应该是

    Widget.prototype.addWidgetInfo = function(a,b,c){
        this.info = {};
        this.info.a = a;
        ...
    }