JM Arenas
JM Arenas

Reputation: 13

i created a class but when i call its properties it returns undefined

I don't know what seems to be the problem. Can anyone enlighten me on why is my class returns as undefined?

function ToDo() {
  class clsToDo{
    constructor(description) {
      this.description = description;
      this.complete = false;
    }
  }
  return clsToDo;
}

desc = 'Create ToDo';
newToDo = new ToDo(desc);

console.log(newToDo.description); // this should print 'Create ToDo'

Upvotes: 0

Views: 38

Answers (1)

Justinas
Justinas

Reputation: 43479

It is because you call just function that returns class:

function ToDo() {
  class clsToDo{
    constructor(description) {
      this.description = description;
      this.complete = false;
    }
  }
  return clsToDo;
}

desc = 'Create ToDo';
newToDo = new ToDo(desc);
v = new newToDo('ok');

console.log(newToDo)

console.log(v.description);


Drop your function and just use normal class definition:

class ToDo {
    constructor(description) {
      this.description = description;
      this.complete = false;
    }
  };

desc = 'Create ToDo';
newToDo = new ToDo(desc);

console.log(newToDo.description);

Upvotes: 1

Related Questions