使用OO-Javascript和全局变量的奇怪行为

时间:2014-05-13 14:22:26

标签: javascript oop global

我有全局对象数组,如此

var data = {};
data.meta = [{..},{..},{..}];

然后我像这样定义一个Javascript类:

var ui = {};
ui.Ruler = function(d) {
    this.d = d;
    this.o = null;
};

ui.Ruler.prototype.render = function () {
    console.log('render');
    return this.o;
};

我可以从开发控制台访问data.meta,它会向我显示其内容。 然而, 当我初始化类的一个实例并传递一个data.meta

的对象时
var ruler = new ui.Ruler(data.meta[0]);

控制台给我一个错误:

未捕获的TypeError:无法读取未定义的属性“0”

此外,data.meta突然变为undefined。怎么会这样?我究竟做错了什么?我希望data.meta[0]在实例化的ruler对象中可用。如果我不运行此行,则仍会定义data.meta。有人可以向我解释这里发生了什么吗?

1 个答案:

答案 0 :(得分:1)

我似乎一切都好。 我试过在FF和Chrome中运行它 - 好吧。 这是我的小提琴testing link

var ruler = new ui.Ruler(data.meta[0]);

(我无法发表评论)