const Singleton = function(){
let instance;
function init(){
let word = "have a nice day";
let getWord = () => word;
return {
getWord
}
}
return {
getInstance:function(){
if(!instance){
instance = init();
}
return instance;
}
}
}();
const instance1 = Singleton.getInstance();
const instance2 = Singleton.getInstance();
console.log(instance1 === instance2);
console.log(instance1.getWord(),instance2.getWord());
ES6 Module里的import
就是单例模式。
以下为简单验证过程。
- 搭建小型服务器
npm init -y
npm install --save-dev express
//server.js
const express = require("express");
const server = express();
server.use(express.static(__dirname));
server.listen(3000,() => {
console.log("listenning on *:3000");
})
- 前台代码
//index.html
<body>
<script type="module" src="./index.js"></script>
</body>
//test.js
export default {
"a":"hello",
"b":"world"
}
//index.js
import instance1 from "./test.js";
import instance2 from "./test.js";
console.log(instance1 === instance2);//输出true
console.log(instance1.a,instance1.b);//输出 "hello" "world"
console.log(instance2.a,instance2.b);//输出 "hello" "world"