Ember mixins

HTML

<script src="https://github.com/downloads/wycats/handlebars.js/handlebars-1.0.0.beta.6.js"></script>
<script src="https://github.com/downloads/emberjs/ember.js/ember-1.0.pre.js"></script>

JavaScript

var Pet = Em.Object.extend({
    name: null
});

var PetOwner = Ember.Mixin.create({
    pet: null,

    init: function() {
        this._super();
        this.set("pet", Pet.create({}));
    }
});

var Male = Ember.Mixin.create({
    chromosomes: null,

    init: function() {
        this._super();
        this.set("chromosomes", ["x", "y"]);
    }
});

var joe = Ember.Object.create(PetOwner, Male, {
    name: "Joe",

    init: function() {
        this._super();
        this.get("pet").set("name", "Fifi");
    }
}, {
    age: 25
});

console.log(joe.get("name"));
console.log("- age: " + joe.get("age"));
console.log("- chromosomes: " + joe.get("chromosomes"));
console.log("- pet: " + joe.get("pet.name"));