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;
}
}
})();