It's become a habit of mine to discover and re-create my libraries with a twist using a slightly different technique. The flavor of this week is starshine.
It's easy to overlook a small library like this. Here are a few of it's features.
StarShine()
returns a factory. It's composed of the closures and objects that it gets passed.
- It has built in internal storage and private "shared" variables. (More on that later)
- Objects are defined by Javascript primitives:
- reusable closures
- properties
- methods
- prototypes
- Works like a function composer
Each function closure should encapsulate a piece of functionality like this:
I cannot stress more that being able to share private variables between closures is a crazy fundamental tool that every developer should use. I have personally used something like this in my personal code:
Each factory has it's own prototype, take the following example.
There is no way to make a prototype chain using this method, or maybe there is and I'm lazy, but this seems to be the only way I know to get prototypical inheritance:
If someone comes up with a better idea, I would love to modify my code to make it more flexible. Getting access to the prototype itself is useful with
instanceof
, but I highly doubt it is necessary. Chances are you probably just wanted to create a new prototype and set the
_type
property. Given the following example:
Accessing a simple property is probably going to be easier on your code and is simply faster.
This library is everything I love about javascript combined into one tiny little package, and I hope you like it.
No comments:
Post a Comment