Skip to content

Instantly share code, notes, and snippets.

@milankarunarathne
Last active February 10, 2017 13:10
Show Gist options
  • Star 10 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save milankarunarathne/c565aa5970987aeca88b to your computer and use it in GitHub Desktop.
Save milankarunarathne/c565aa5970987aeca88b to your computer and use it in GitHub Desktop.
Create Singleton pattern using ES6
'use strict';
/**
* Created by Milan Karunarathne
* Email: mhkarunarathne@gmail.com
* May be freely distributed under the MIT license
*/
import EventEmitter from 'events';
class Single extends EventEmitter {
constructor() {
this.name = 'Singleton';
}
getName() {
return this.name;
}
setName(name) {
this.name = name;
}
}
export default let single = new Single();
'use strict';
import Single from './ES6_Single';
console.log(`Test one: ${Singleton.getName()}`);
console.log(Singleton.setName('New Single'));
'use strict';
import Single from './ES6_Single';
setTimeout(() => {
console.log(`Test two: ${Singleton.getName()}`);
}, 500);
@allencoded
Copy link

Tried the same approach you have, but I get an error with unexpected token let:
export default let single = new Single();

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment