Показать сообщение отдельно
  #1 (permalink)  
Старый 11.07.2012, 14:50
Интересующийся
Отправить личное сообщение для iostream21 Посмотреть профиль Найти все сообщения от iostream21
 
Регистрация: 11.07.2012
Сообщений: 23

ООП в javascript
Существует множество паттернов для реализации ООП в яваскрипте и каждый пытается доказать что его реализация лучше. Расширение через прототипирование и прочие.

Хотелось бы узнать ваше мнение по поводу следующего кода, представленным ниже образом я реализую механизм ООП для скрипта который пишу, что вы можете посоветовать в данном случае и на какие грабли в будущем я могу наступить.

//internal class Animal
var Animal = function () {
    var animal = this;

    //public variables and methods
    animal.satiety = 0;
    animal.eat = function () {
        eat();
    };
    animal.getFood = function () {
        return animal.satiety;
    };

    //private variables and methods
    function eat() {
        satiety++;
    }

    //constructor
    (function () {

    })();

    //static methods
    Animal.voice = function () {
        console.log("Voice");
    };

    return animal;
};

// internal class Horse
var Horse = function () {
    Horse = Animal;
    var horse = new Animal();
    
    //override parent function
    horse.eat = function (count) {
        horse.satiety += count;
    };
    horse.getFood = function () {
        console.log("FOOD : " + horse.satiety);
    };

    return horse;
};

var horse = new Horse();

horse.eat(12);
Horse.voice();
horse.getFood();

console.log(horse);
Ответить с цитированием