Ответы пользователя по тегу ООП
  • ООП в Javascript

    @humblegenius
    function С(){
        this.a = 100; 
        // this - это новый объект, который будет присвоен переменной o.
        // т.е. свойство "a" - это свойство создаваемого объекта
    }
    С.prototype.b = 200;
    //С - формально  это функция, логически у нас - это класс. Любая функция имеет прототип, с помощью которого мы можем добавлять свойства и методы для класса
    //т.е. свойство "b" - это свойство прототипа, которое наследуется при создании объекта класса
    var o = new C();


    Теперь немного практики:
    var CThis;
    function C(){
        alert(this.b); // 200 (b - уже есть, т.к. это свойство прописано в прототипе)
        this.a = 100;
        CThis=this; // сохраним для исследований
    }
    C.prototype.b = 200; // дополняем в класс новое свойство
    var o = new C();
    
    alert(CThis == o); //true 
    alert(o.prototype); //undefined (у объекта нет прототипа)
    alert(o.constructor==C); //true (у объекта есть конструктор)
    alert(o.constructor.prototype==C.prototype); //true
    
    Ответ написан
    Комментировать