Object Literal
Để sử dụng singleton pattern ở trong JavaScript, chúng ta chỉ cần tạo ra một object literal.
Ví dụ:
const user = {
name: "Peter",
age: 25,
job: "Teachcer",
greet: function () {
console.log("Hello!")
},
}Object literal này là duy nhất và bất cứ sự thay đổi nào trên các đối tượng tham chiếu đều sẽ ảnh hưởng đến nó.
const user1 = user
user1.name = "Mark"
console.log(user.name) // 'Mark'
console.log(user1.name) // 'Mark'
console.log(user === user1)Module Pattern
Cũng có thể sử dụng module pattern để triển khai singleton pattern như sau:
const singleton = (function () {
let instance
function init() {
return {
name: "Peter",
age: 24,
}
}
return {
getInstance: function () {
if (!instance) {
instance = init()
}
return instance
},
}
})()