Прототипы классов


Прототипы позволяют расширять не только новые классы,
но и уже существующие, причем действие прототипа распространяется
на все экземпляры класса:

function array_max() {
    var i, max = this[0];
    for (i = 1; i < this.length; i++) {
        if (max < this[i]) max = this[i];
    }
    return max;
}
Array.prototype.max = array_max;
var x = new Array(1, 2, 3, 4, 5, 6);
var y = x.max();

// Интересный прототип для повторений строки N-раз

String.prototype.times = function(n) {
    return new Array(n + 1).join(this);
};

alert('123'.times(3));