Methods
You can add methods (aka functions) to the objects created from your stamps.
All the methods are attached to object's prototype.
Moreover, the entire methods
descriptor metadata becomes the prototype.
If you compose the stamp above with any other stamp, then object instances created from it will also have the .debug
method.
Descriptor merging algorithm
The methods are copied by assignment. In other words - by reference using Object.assign
.
In case of conflicts the last composed method wins. To avoid method collision use the @stamp/collision stamp. To make sure a method is implemented use the @stamp/required stamp.
NOTE
When using the @stamp/required stamp it creates a proxy object and returns from the factory. This means that
logger.__proto__ === Logger.compose.methods
orlogger.__proto__.debug === Logger.compose.methods.debug
will no longer betrue
.
Other ways to add methods
Exactly the same stamp can be created in few ways. Here they all are.
Last updated