Delegation Pattern for JavaScript
This module implements the delegation pattern for JavaScript, in the very popular and usable Rails style.
Delegating methods
delegate = delegate; { thisengine = ; ;}; myCar = ;
Now myCar.start()
calls myCar.engine.start()
and
myCar.stop()
calls myCar.engine.stop()
.
You can also access the property myCar.cylinders
,
which contains the value of myCar.engine.cylinders
.
More information in the spec for delegating methods and properties. This library also provides meaningful error messages.
Delegating Events
You can also forward events emitted by wrapped classes.
delegateEvent = delegateEvent; { thisengine = ; ;};
Now if myCar.engine
emits a starting starting
event,
myCar
also emits that event.
Alternatives
This library aims for maximally readable syntax that closely matches the Rails version. There are other libraries that are different and more versatile, for example node-delegates.
Development
See our developer guidelines