js中使用require實現單例模式
阿新 • • 發佈:2019-01-02
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,那麼這麼模組中的變數還是保持之前使用的那一次。