2017-11-18 126 views
0

當頁面準備就緒時,我用$(function)封裝了兩個用於運行代碼的文件。但由於某些原因從第二個文件中的第一個文件調用函數給我錯誤「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有它自己的範圍。 –