[英]javascript not including files?
啟動頁面時,嘗試在包含在另一個文件中的javascript文件中使用函數時遇到問題。
在文件design.js中,我想執行var x = new canvasManager(); 並且canvasManager是在canvasManager.js中定義的。
但是,當我嘗試這樣做時,我得到一些“未定義的未捕獲類型錯誤不是函數”。 是什么賦予了? 以下是我進入瀏覽器的html文件中的相關代碼:
<link rel="stylesheet" type="text/css" href="styles.css" />
<script type="text/javascript" src="jquery/jquery.js"></script>
<script type="text/javascript" src="jquery/kinetic.js"></script>
<script type="text/javascript" src="designManager.js"></script>
<script type="text/javascript" src="canvasManager.js"></script>
<script type="text/javascript" src="gateManager.js"></script>
<script type="text/javascript" src="wireManager.js"></script>
<script type="text/javascript" src="toolbarManager.js"></script>
<script type="text/javascript" src="objectDrawing.js"></script>
<script type="text/javascript" src="util/mouseEventManager.js"></script>
<script type="text/javascript" src="util/hotkeyManager.js"></script>
<script type="text/javascript" src="util/htmlUtils.js"></script>
<script type="text/javascript" src="design.js"></script>
<script type="text/javascript">
$(document).ready(function(){
initializeDesign();
});
</script>
//在design.js中...
function initializeDesign() {
var canvasManager = new canvasManager();
}
感謝您的任何幫助。
該名canvasManager
在new canvasManager()
是指canvasManager
在var canvasManager
,而不是canvasManager
您在其他JS文件中定義。 initializeDesign()
中canvasManager
的聲明canvasManager
了另一個聲明。
在以下位置更改變量的名稱:
var canvasManager = new canvasManager();
當您定義該局部變量時,它將用相同的名稱替代全局函數,以便new canvasManager()
僅引用您的局部變量而不是全局函數。 因此,由於局部變量的值仍未定義,您將看到錯誤。
更改為:
var theCanvasManager = new canvasManager();
或類似的東西,它應該可以正常工作。
盡管我不建議這樣做(因為我認為它不是超級可讀的代碼,並且可能導致其他意外錯誤),但是您也可以這樣做:
var canvasManager = new window.canvasManager();
在這里,您明確地指的是全局作用域函數,因此它與局部變量不同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.