Node.js的全域對象和全域變數

來源:互聯網
上載者:User

標籤:port   環境   目錄   寫法   對象   script   time   根據   win   

1、全域對象

所有模組都可以調用

1)global:表示Node所在的全域環境,類似於瀏覽器中的window對象。

2)process:指向Node內建的process模組,允許開發人員與當前進程互動。

例如你在DOS或終端視窗直接輸入node,就會進入NODE的命令列方式(REPL環境)。退出要退出的話,可以輸入 process.exit();

3)console:指向Node內建的console模組,提供命令列環境中的標準輸入、標準輸出功能。

通常是寫console.log(),無須多言

 

2、全域函數:

1)定時器函數:共有4個,分別是setTimeout(), clearTimeout(), setInterval(), clearInterval()。
2)require:用於載入模組。

 

3、全域變數:

1)_filename:指向當前啟動並執行指令檔名。

2)_dirname:指向當前啟動並執行指令碼所在的目錄。

 

4、准全域變數

模組內部的局部變數,指向的對象根據模組不同而不同,但是所有模組都適用,可以看作是偽全域變數,主要為module, module.exports, exports等。


module變數指代當前模組。module.exports變數表示當前模組對外輸出的介面,其他檔案載入該模組,實際上就是讀取module.exports變數。

module.id 模組的識別符,通常是模組的檔案名稱。
module.filename 模組的檔案名稱。
module.loaded 返回一個布爾值,表示模組是否已經完成載入。
module.parent 返回使用該模組的模組。

module.children 返回一個數組,表示該模組要用到的其他模組。

 

這裡需要特別指出的是,exports變數實際上是一個指向module.exports對象的連結,等同在每個模組頭部,有一行這樣的命令。

var exports = module.exports;

這造成的結果是,在對外輸出模組介面時,可以向exports對象添加方法,但是不能直接將exports變數指向一個函數:

exports = function (x){ console.log(x);};

上面這樣的寫法是無效的,因為它切斷了exports與module.exports之間的連結。但是,下面這樣寫是可以的。


  
  1. exports.area = function (r) {  
  2.   return Math.PI * r * r;  
  3. };  
  4.   
  5. exports.circumference = function (r) {  
  6.   return 2 * Math.PI * r;  
  7. };  

 

如果你覺得,exports與module.exports之間的區別很難分清,一個簡單的處理方法,就是放棄使用exports,只使用module.exports。

 

Node.js的全域對象和全域變數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.