2017-11-18 16 views
0

ページが準備できたらコードを実行するために、両方のファイルを$(関数)でラップします。しかし、2番目のファイルの最初のファイルから関数を呼び出すいくつかの理由で、 "ReferenceError:test is not defined"というエラーが表示されます。他のファイルからの関数は定義されていません

まずファイル:

$(function() { 

    function test() { 
     alert(1); 
    } 

}); 

セカンドファイル:

$(function() { 

    test(); 

}); 

答えて

1

JavaScriptのスコープは、あなたがWindowグローバルオブジェクトを使用して、これを避けることができるためです。

変数をWindowオブジェクトに追加すると、オブジェクトがグローバルになり、どこからでもアクセスできます。

まずファイル:

$(function() { 
 

 
    window.test = function() { 
 
     alert(1); 
 
    } 
 

 
});

セカンドファイル:

$(function() { 
 

 
    test(); 
 

 
});

+0

は、ソリューションをありがとうございました。しかし、JSが同じ範囲内で機能を見つけられない理由を説明できますか? – DIAMONDMAN

+0

@ DIAMONDMANあなたの関数 'test'は同じスコープではありません。すべての関数はJS自身のスコープを持っています。 –

関連する問題