2016-03-22 34 views
0

我在這裏做錯了什麼?我在FILE1中定義了一個變量,然後在FILE2中需要FILE1,並且我需要MAIN中的FILE2,所以我期望能夠從MAIN和FILE2訪問全局變量my_global,但它會引發錯誤。從另一個文件調用時,Javascript範圍錯誤

FILE1

var my_global=42; 

FILE2

require('FILE1'); 
var harvesterCount=12; 
console.log(harvesterCount+my_global); //throws error 
module.exports = function() {...} 

主要

require('FILE2'); 
console.log(my_global); //error here 

錯誤的語句(從Screeps控制檯):

ReferenceError: my_global is not defined 
    at module.exports:8:5 
    at Object.module.exports.loop:6:5 
    at __mainLoop:1:12057 
    at eval:2:4 
    at Object.c.runCode:6:26869 
+0

的node.js您嘗試上述輸出變量? –

回答

0

的行爲是正確的,你應該相當導出變量。對於例如

var my_global=42; 
exports = { 
    my_global:my_global 
} 

您可以參考使用

var m = require('file1'); 
console.log(m.my_global); 
0

嘗試使用<script>標籤,而不是使用require

引用文件,我在另一個answer看到計算器約require。 希望這可以幫助你。

require()不是您的標準JavaScript的一部分。在你的 問題和標籤中,require()被構建到Node.js中以加載模塊。 該概念類似於C/Java/Python/[在此處插入更多語言] 進口或包含。

模塊的概念類似於通過標籤添加小部分 JavaScript代碼。 與添加一個標籤,它 不將文件泄漏到全球範圍內

+0

感謝您的帖子,我在這裏找到答案:http://stackoverflow.com/questions/5311334/what-is-the-purpose-of-node-js-module-exports-and-how-do-you-use -it/5311377#5311377我不得不導出全局變量 – Rilcon42

+0

您不能在Javascript中使用'

  • 11. Excel vba:將範圍創建爲另一個範圍的子範圍時可能存在的錯誤
  • 12. 報告文檔範圍的Javascript錯誤
  • 13. 從一個對象調用函數到另一個JavaScript文件
  • 14. 錯誤從另一個文件
  • 15. 錯誤與調用另一個事件
  • 16. 從另一個JavaScript程序調用JavaScript文件
  • 17. 嘗試從文件讀取時超出範圍錯誤?
  • 18. 從另一個js源文件調用函數時出現未定義錯誤
  • 19. 嘗試從另一個頭文件調用函數時出現錯誤(C++)
  • 20. 檢查一個時間範圍進入另一個時間範圍
  • 21. 從另一個調用一個javascript
  • 22. MySQL數據範圍從另一個表
  • 23. UIImageView範圍。從另一個類
  • 24. 設置範圍從另一個範圍名稱
  • 25. 返回從另一個範圍的偏移量的範圍VBA
  • 26. 從另一個範圍遍歷範圍內的對象?
  • 27. 從調用範圍訪問javascript變量
  • 28. 將動態範圍文本複製到另一個範圍
  • 29. 將變量從一個JavaScript文件調用到另一個文件
  • 30. 在另一個範圍內查找範圍條件