Показать сообщение отдельно
  #1 (permalink)  
Старый 21.07.2015, 15:31
Аспирант
Отправить личное сообщение для Moloch Посмотреть профиль Найти все сообщения от Moloch
 
Регистрация: 29.10.2013
Сообщений: 94

наследование в javascript
Здравствуйте. такой вопрос: почему из скрытого метода потомка нельзя получить доступ к свойству родителя?
<script>
    function Machine(power) {
      this._enabled = false;

      this.enable = function() {
        this._enabled = true;
      };

      this.disable = function() {
        this._enabled = false;
      };
    }

    function CoffeeMachine(power) {
      Machine.apply(this, arguments);

      var waterAmount = 0;

      this.setWaterAmount = function(amount) {
        waterAmount = amount;
      };

      function onReady() {
        console.log(this._enabled);
        if(this._enabled==false){
          console.log('ошибка, кофеварка выключена!'+'enable: '+this._enabled);
        }
        else if(this._enabled==true){
         console.log('Кофе готово!'+'enable: '+this._enabled);
        }
      }

      this.run = function() {
        console.log(this._enabled);
        setTimeout(onReady, 1000);
      };

    }
    var coffeeMachine = new CoffeeMachine(10000);
   // coffeeMachine.enable();
   coffeeMachine.run();
  </script>


через метод onReady нельзя прочитать свойство enabled (выводит undefined) а через метод Run все прекрасно читается
Ответить с цитированием