使用新窗口[]创建静态内部函数对象

时间:2013-04-25 03:17:17

标签: javascript

我有一个静态内部函数:

function A() {

}

A.B = function() {

}

我无法使用:

创建内部静态函数的函数对象
new window['A.B'](); //Does not work

其中

new window['A'](); //Works

&安培;

new A.B(); //Also works if I create inner static function object directly.

有谁知道如何使用窗口创建静态内部函数对象?

1 个答案:

答案 0 :(得分:3)

A.B不属于window的属性。 Awindow的属性,BA的属性。因此,如果你真的想用括号做一些奇怪的原因,那就是new window['A']['B']()

如果你想在根据点下降时访问对象的任何属性,那就不是内置的。

function descend(obj, path) {
    var parts = path.split('.');

    for(var i = 0; i < parts.length; i++) {
        obj = obj[parts[i]];
    }

    return obj;
}

// var B = descend(window, 'A.B');
// new B()