Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Почему false? (https://javascript.ru/forum/misc/30491-pochemu-false.html)

stp008 06.08.2012 14:48

Почему false?
 
функция readvalues создает свойства объекта calculator и присваивает им значение. почему при проверке выдает 0?

var calculator = {
  sum: function() {
    return this.a + this.b;
  },

  mul: function() {
    return this.a * this.b;
  },

  readValues: function() {
    this.a = 90;
    this.b = 30;
  }
};

alert( "a" in calculator );

Dim@ 06.08.2012 14:51

потому что изначально a и b не определены

zebra 06.08.2012 14:51

var calculator = {
  a: 0, 
  b: 0,
  sum: function() {
    return this.a + this.b;
  },

  mul: function() {
    return this.a * this.b;
  },

  readValues: function() {
    this.a = 90;
    this.b = 30;
  }
};

alert( "a" in calculator );

stp008 06.08.2012 14:52

спасибо большое за ответы.
var calculator = {
  
  readValues: function() {
    this.a = "90";
    this.b = "30";
  },
  
  sum: function() {
    return this.a + this.b;
  },

  mul: function() {
    return this.a * this.b;
  }

  
};
  
  
calculator.readValues();
alert( "a" in calculator );

DreamTheater 06.08.2012 17:32

var calculator = {
  
  readValues: function() {
    this.a = "90";
    this.b = "30";
  },
  
  sum: function() {
    return this.a + this.b;
  },

  mul: function() {
    return this.a * this.b;
  }

  
};
  
  
calculator.readValues();
alert( calculator.hasOwnProperty("a") );


Часовой пояс GMT +3, время: 01:54.