• Замена "каптчи"?

    barmaley_exe
    @barmaley_exe
    А какая разница, какие номера? Картинки-то три. Соответственно вероятность угадать = 1/3 = 33%
    А это шикааарно!
  • Синтаксис ООП в js и использование prototype

    barmaley_exe
    @barmaley_exe
    В примере E метод как раз не будет добавлен в прототип.

    Сравните:
    function Obj(){};
    Obj.prototype.fnc = function(){alert(5)};
    obj = new Obj();
    obj.fnc(); // 5
    Obj.prototype.fnc = function(){alert(51)};
    obj.fnc(); //51


    
    function Obj(){
      this.fnc = function(){
        alert(5);
      }
    };
    obj = new Obj();
    obj.fnc && obj.fnc();
    Obj.prototype.fnc = function(){alert(52)};
    obj.fnc();
    


    javascript.ru/ecma/part13#a-13.2.2

    Т.о., свойства и методы, задаваемые внутри конструктора, не попадут в prototype и будут существовать раздельно для каждого объекта (в отличии от prototype, который общий для всех объектов, порожденных этим конструктором). Т.е. вариант E более затратный в плане памяти, в отличие от варианта B.

    s43.radikal.ru/i101/1009/49/65ba9a6115f8.jpg
    График потребления памяти. Первый бугор — это 1 000 000 экземпляров класса, у которых 3 метода заданы внутри конструктора. Второй бугор — 1 000 000 экземпляров, у которых те же 3 метода заданы в прототипе.