Sample Javascript Mixins
by LeoJH
JavaScript
// Aliases for the rather verbose methods on ES5
var descriptor = Object.getOwnPropertyDescriptor
, properties = Object.getOwnPropertyNames
, define_prop = Object.defineProperty
// (target:Object, source:Object) → Object
// Copies properties from `source' to `target'
function extend(target, source) {
properties(source).forEach(function(key) {
define_prop(target, key, descriptor(source, key)) })
return target
}
var tiger = function()
{
this.meow = function() {
alert('meow');
}
}
var lion = function()
{
this.roar = function() {
alert('roar');
}
}
var tiger = new tiger();
var lion = new lion();
debugger;
var liger = extend(liger, lion);
liger.meow();
liger.roar();