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