Показать сообщение отдельно
  #374 (permalink)  
Старый 11.01.2014, 00:35
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus7
 
Регистрация: 08.01.2014
Сообщений: 354

Пасоны, глядите я новый Class написал =)
Пасоны, глядите я новый Class написал =)

function Class( description ) {
    return Class.extend( description );
}


Class.extend = function( description ) {

    description.prototype = this.prototype;

    var prototype = new description;
    var constructor = prototype.constructor || function() {};

    constructor.prototype = prototype;
    constructor.extend = this.extend;

    return constructor;
};



// используем

var Animal = new Class(function() {
    this.say = function() {
        alert( this.name )
    }
});



var Cat = Animal.extend(function() {
    this.constructor = function() {
        this.name = 'Cat';
    }
})


var Rabbit = Animal.extend(function() {
    this.constructor = function() {
        this.name = 'Rabbit';
    }
})


var q = new Cat();
var w = new Rabbit();

q.say(); // Cat
w.say(); // Rabbit


щас добавлю сахар для перекрытия и обращения к полям без this


Чтобы можно было писать так

var Animal = new Class( function() {

    constructor = function() {
        name = 'Animal'
        age = 11
    }

    say = function() {
        alert( name )
    }

} );


и имелось ввиду именно обращение к this

А добавлю перекрытие чтобы к перекрытым родительским можно было обращаться как
parent.method

Последний раз редактировалось Maxmaxmaximus7, 11.01.2014 в 07:16.
Ответить с цитированием