functional alternative to inheritance
npm install swk-metaobjectThis library is a lightweight implementation of the technique describe by Reginald Braithwaite in his book Javascript Spessore
var source,
receiver,
meta = require("swk-metaobject");
source = {
prop: "foo",
doThis: function () {
return this.prop;
},
doThat: function () {
return this;
}
};
receiver = {
prop: "bar"
};
meta.forward(receiver, source);
receiver.doThis(); // foo
receiver.doThat(); // receiver
meta.delegate(receiver, source);
receiver.doThis(); // bar
receiver.doThat(); // receiver
// method filtering (same for delegate)
meta.forward(receiver, source, ['doThis']);
receiver.doThis; // function
receiver.doThat; // undefined
// method aliasing (same for delegate)
meta.delegate(receiver, source, {executeThis: 'doThis'}
meta.doThis; // undefined
meta.doThat; // undefined
meta.executeThis; // function