我有一个静态内部函数:
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.
有谁知道如何使用窗口创建静态内部函数对象?
答案 0 :(得分:3)
A.B
不属于window
的属性。 A
是window
的属性,B
是A
的属性。因此,如果你真的想用括号做一些奇怪的原因,那就是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()