Получение неопределенного значения из объекта akshat.age, вместо этого я должен получать числовое значение

#javascript

#javascript

Вопрос:

 const akshat = {
    firstName:'Akshat',
    lastName:'Saxena',
    birthYear:1994,
    job:'programmer',
    friends:['Paras','Rachit','Pushpendra'],
    hasDriverLicense: true,

    calcAge:function(){
        this.age = 2037 - this.birthYear;
    }

};

console.log(akshat.age);
 

Ответ №1:

age устанавливается при calcAge вызове:

 const akshat = { 
  firstName:'Akshat', 
  lastName:'Saxena', 
  birthYear:1994, 
  job:'programmer', 
  friends:['Paras','Rachit','Pushpendra'], 
  hasDriverLicense: true,
  calcAge:function(){
    this.age = 2037 - this.birthYear;
  }
};

akshat.calcAge(); // set age

console.log(akshat.age); 

Комментарии:

1. Означает ли это, что возраст будет установлен в объекте только после того, как мы вызовем метод один раз?

2. @AkshatSaxena да.

3. @AkshatSaxena возраст устанавливается внутри функции, так что да.

Ответ №2:

У объекта нет собственного свойства age. Свойство устанавливается при запуске функции calcAge() . Если вы попытаетесь получить доступ к age свойству без запуска функции, вы получите undefined as age is not defined . Итак, вам нужно сначала запустить calcAge метод, как показано ниже —

 const akshat = { 
  firstName:'Akshat', 
  lastName:'Saxena', 
  birthYear:1994, 
  job:'programmer', 
  friends:['Paras','Rachit','Pushpendra'], 
  hasDriverLicense: true,
  calcAge:function(){
    this.age = 2037 - this.birthYear;
  }
};

console.log(akshat.age); //undefined

akshat.calcAge(); // set age

console.log(akshat.age); //43