DEV Community


Discussion on: Singleton in JavaScript

tomekbuszewski profile image
Tomek Buszewski Author

Sorry, I meant not extending but inherit. You can inherit from object literals by just creating new object based on your original one, like here. In singleton pattern, once you create the instance, it cannot be inherited in any way, because any ancestors will link to the original one.

Sorry again for confusion, lack of sleep has really got me this time :D

Thread Thread
avalander profile image

That's not what I would define as inheriting, you're cloning the object and adding extra properties to the clone. Nothing prevents anyone from cloning your singleton instance either, though, as long as they remember to carry on the prototype.

const clone = Object.assign(
    { shoutName() { return }}

Enter fullscreen mode Exit fullscreen mode
Thread Thread
tomekbuszewski profile image
Tomek Buszewski Author

You are completely right, but here you are stepping away from the merit of the text, which is singleton design pattern. In JavaScript all (or are there some that aren't?) reference types can be cloned and those cloned modified.