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();