Delegation Pattern for JavaScript
This module implements the
delegation pattern
for JavaScript,
in the very popular and usable
Rails style.
delegate = require('rails-delegate');
function Car() {
this.engine = new Engine();
delegate('start', 'stop', 'cylinders', { from: this, to: this.engine });
};
myCar = new Car;
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.
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.