1. 程式人生 > >js中使用require實現單例模式

js中使用require實現單例模式

1) 例子1

 待使用的庫

var obj = {
    num: 0
}

console.log("require lib");
module.exports = obj;

 利用require只加載一次的單例特性使用

var lib = require("./lib");
lib.num++;
console.log(lib)

var lib2 = require("./lib");
console.log(lib2)

require lib
{ num: 1 }
{ num: 1 }

2) 例子2

var i = null;

function init() {
    i = 250;
}

function print() {
    console.log(i);
}

module.exports = {
    init: init,
    print: print
}

使用

var lib = require("./lib");
lib.init();
lib.print();

var lib2 = require("./lib");
lib2.print();

250
250

 

小結:

例子1小結:

這個例子看起來沒啥,其實經過變形。 比如:lib匯出的是一個redis或者mysql的連線,那麼,其實看著每次都進行了require,實際得到的都是同一個資料庫連線物件。

 

例子2小結:

說明了,在進行1次require並且初始化了這麼模組的變數後,那麼再次require,那麼這麼模組中的變數還是保持之前使用的那一次。