• Игра в покер в закрытой комнате

    @mr_idiot
    Вживую под пиво и закуску!
    Ответ написан
    Комментировать
  • Кто шуршит моим винтом? Расскажи-ка мне о том!

    Dormidont
    @Dormidont
    А никто и не написал, что в самом таскменеджере можно выбрать дополнительные колонки. Там есть I/O Read Bytes и I/O Write Bytes. Быстро растущие значения в этих колонках могут подсказать процесс-виновник.
    Ответ написан
    Комментировать
  • Посоветуйте, пожалуйста, дешевый(для студента) роутер [РЕШЕНО]

    @alienrom
    TP-Link MR3420
    -Ethernet-to-WiFi(a\b\g\n)
    -3G-to-WiFi
    Год работы глюков не замечено.
    Ответ написан
    Комментировать
  • Синтаксис ООП в js и использование prototype

    Ну на самом деле разница между B и E есть, в случае E, когда метод объявляется прямо в конструкторе он будет иметь доступ к приватным переменным и методам, это так называемые привилегированные методы, а вот в примере B нет возможности работать с приватными данными.
    Вот о чем я говорю:
    var MyClass = function() {
      // Приватные атрибуты
      var _a, _b;
      // Приватный метод
      function _myPrivate(isbn) {
      } 
      // публичный привилегированный метод
      this.MyPublicPlus = function() {

      };
    }

    // публичный непривилегированный метод.
    MyClass.prototype = {
      MyPublic: function() {
      }
    };


    Метод MyPublicPlus будет иметь доступ к _a, _b и _myPrivate(), а MyPublic нет…
    Ответ написан
    Комментировать
  • Синтаксис ООП в js и использование prototype

    runawayed
    @runawayed
    JS — объектно-ориентированный язык, но в нем отсутствуют классы, их заменяют конструкторы объектов, поэтому вместо обычного наследования через классы существует наследование через прототипы. Т.е. экземпляр класса наследует его свойства и методы, которые находятся в его прототипе.
    Конструктор класса (function Obj() {}) — функция, в которой описаны свойства и методы прототипа, поэтому ко всем ним будет доступ при создании экземпляра.

    В примере A конструктор пустой, а Obj.method присваивает метод объекту, а не его прототипу, поэтому он не будет наследован в obj = new Obj(). Этот пример не работает.

    Пример B — правильный, здесь метод method добавляется в прототип и будет наследоваться всеми экземплярами.

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

    Пример D аналогичен примеру C, только его свойство method содержит ссылку на внешнюю функцию. Этот пример можно использовать, когда нужно вызвать какую-то функцию из внешней библиотеки.

    Пример E правильный и аналогичен примеру B, с разницей в том, что наследуемый метод задается сразу в конструкторе, а не через prototype.
    Ответ написан
    1 комментарий