簡體   English   中英

JavaScript不包括文件?

[英]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();

}

感謝您的任何幫助。

該名canvasManagernew canvasManager()是指canvasManagervar 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM