node.js模塊化寫法入門


子模塊的寫法:

function SVN(){
    console.log('svn initialized');
    return this;
}

function getInstance() {
    console.log('getInstance');
    return new SVN();
}

module.exports = SVN;
module.exports.getInstance = getInstance;

 

這里定義了一個模塊叫SVN,可以通過兩種方式把這個模塊的方法公開給外界調用。

一個是賦值給module.exports,另外一個就是設置exports的屬性。

 

使用時:

var SVN = require('./lib/svn.js');
var svn1 = new SVN();
var svn2 = SVN.getInstance();

 

svn1和svn2就分別對應上述的兩種公開方式。

 

我覺得習慣上,如果這個模塊就是一個類,那么用第一種方法比較合適;如果這個就是一個工具庫,只是靜態函數,那么用第二個方式;如果這個模塊其實包含很多個類,那么還是第二個方式,這個模塊就變了一個包(package)或者說命名空間,例如:

搞個define.js,假設person.js導出了一個Person類,animal.js導出一個Animal類

module.exports.Person = require('./person.js');
module.exports.Animal = require('./animal.js');

 

使用時:

var define = require('./define.js');
var person = new define.Person();
var animal = new define.Animal();

 

 

嗯,非常有面向對象的感覺。。。咳咳,自從很久很久以前用過java后,這種類、包的思維就固化了,真不知道是好事還是壞事。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM