properties

The following properties can be used within the Classes passing object.

initialize: function

(returns constructor) - The initialize function serves as constructor on instance creation.

Create a new Class:

var Animal = new Class({
    initialize: function(name, age) {
        this.name = name;
        this.age = age;
    }
});

    // the passing options will be passed through the constructor initialize
new Animal('Satan', 21);

implement: array

(returns object) - Each object or class within the array will be added to the assigned class.

Implementing new methods:

// preparing a class
var Mammal = new Class({
    swim: function () {
        alert(this.name + ' can swim now.');
    },
    dive: function () {
        alert(this.name + ' can dive now.');
    }
});

// preparing a normal object
var Bird = {
    fly: function () {
        alert(this.name + ' can fly now.');
    }
};

var Animal = new Class({
    implement: [Mammal, Bird],
    initialize: function (name, age) {
        this.name = name;
        this.age = age;
    },
    eat: function () {
        alert(this.name + ' is eating now.');
    }
});

var cat = new Animal('Sora', 4);
    cat.swim(); // alerts "Sora can swim now."
    cat.dive(); // alerts "Sora can dive now."
    cat.fly(); // alerts "Sora can fly now."

This property works identical to the Class.implement method.

options: object

(returns object) - The options object represents a JSON structure.

Attach options to a Class:

var Animal = new Class({
    options: {
        'name': '',
        'age': null,
        'dead': false
    },
    initialize: function (options) {
        // merging objects using jQuery
        this.options = options;

        // you might want to merge the two ojects using jQuery
        // this.options = jQuery.extend(true, {}, this.options, options)
    }
});

var cat = new Animal({
    'name': 'Sora',
    'age': 4
});

    // call options direct
    alert(cat.options.name); // alerts 'Sora'

this.parent()

(returns function) - When called from within a class.js function this invokes the parent function of the same name. This is useful when extending an existing class.js plugin.

Example usage of parent:

var Animal = new Class({
    initialize: function (name, age) {
            this.name = name;
            this.age = age;
    },
    getName: function () {
            alert(this.name + ' is eating now.');
    }
});

Animal.extend({
    getName: function () {
            // calls previous getName first
            this.parent();
            alert(this.name + ' is ' +  this.age + ' years old.');
    }
});

var cat = new Animal('Sora', 4);
    cat.getName(); // alerts both calls, name and age