Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

76
Visualizações
Accessing calculated property in javascript object

Why does the console print undefined when I access age property directly. I have to print calcAge function first in order to get the value.

const Osama = {
    firstName: 'osama',
    lastName: 'Shaikh',
    birthyear: 1999,
    job: 'developer',
    friends: ['michael', 'peter', 'steven'],
    haslicense: true,
    calcAge: function () {
        this.age = 2021 - this.birthyear;
        return this.age;
    },

};
console.log(Osama.age);
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

That object doesn’t have an age property to begin with.

You only assign it when you run the calcAge method.

about 4 years ago · Juan Pablo Isaza Relatório

0

It seems like you're looking to assign a getter for the age property.

const Osama = {
  birthyear: 1999,

  get age() {
    console.log('in getter');
    return 2021 - this.birthyear;
  },
};

console.log(Osama.age); // in getter, 22
console.log(Osama.age); // in getter, 22

Or, to calculate the age only on first access and replace it with a static property you can use a self-overwriting getter.

const Osama = {
  birthyear: 1999,
  
  get age() {
    console.log('in getter');
    delete this.age;

    return (this.age = 2021 - this.birthyear);
  },
};

console.log(Osama.age); // in getter, 22
console.log(Osama.age); // 22

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda