在JAVASCRIPT中使用window对象实例化

时间:2011-11-11 08:53:03

标签: javascript window

我有一个问题,用窗口对象实现一个类,我有一个命名空间调用UTIL,我有这个类:

var UTIL = { Classes : {}};

UTIL.Classes.ObservationVal = function(state, id, type, context, performer, addresee, query) {
    this.query = query;
    SPEECH.Classes.ActionVal.call(this,state, id, type, context, performer, addresee);
}

UTIL.Classes.ObservationVal.prototype = new SPEECH.Classes.ActionVal();
UTIL.Classes.ObservationVal.prototype.constructor = SPEECH.Classes.ObservationVal;

之后,我有这段代码:

var name = "ObservationVal";
var clStr = "UTIL.Classes." + name;
var obj = new window[clStr]();

,最后一行显示错误:“window [clStr]不是构造函数”

我不明白为什么在instanciate失败的时候,这个类ObservationVal被定义为这样的命名空间:

function ObservationVal(state, id, type, context, performer, addresee, query) {
//..
}

窗口的instanciate工作正常。 感谢。

1 个答案:

答案 0 :(得分:0)

这是因为foo["bar.baz"]不等于foo.bar.baz。您可能需要window.UTIL.Classes[name]这样的内容。