1

我在窗口对象上定义了一个函数,有点像这样

window["functionName"] = function(){
    // code here
};

现在每当我需要该功能时,我只需调用

window["functionName"]();

这适用于除 IE8 之外的所有浏览器。IE8 报错

SCRIPT438: Object doesn't support property or method 'functionName'

我搜索了解释,但没有找到任何解释。

编辑:经过长时间的调试,我得到了错误的原因

实际上上面的函数定义在另一个函数中。

function otherFunction(){
    window["functionName"] = function(){
        // code here
    };
    // code here
}

当我把它移到外面时,它看起来工作正常。

window["functionName"] = function(){
    // code here
};

function otherFunction(){
    // code here        
}

但我仍然无法理解为什么会出现这种奇怪的行为?

4

0 回答 0