Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

JavaScript Practice Object Interaction The Rough Plan Solution: Building Constructor Methods

Doron Geyer
seal-mask
.a{fill-rule:evenodd;}techdegree
Doron Geyer
Full Stack JavaScript Techdegree Student 13,897 Points

quick question on what would be the better method here.

in the exercise the constructor for the patron class specifies that it should be

class Patron{
  constructor(name,email){
    this.name = name;
    this.email = email;
    this.currentBook = null;
  }
  checkout(){};
  returnBook(){};
};

would it not make more sense to have an argument which can pass in the current book but if none is give it instead defaults to null like this?

class Patron{
  constructor(name,email,currentBook= null){
    this.name = name;
    this.email = email;
    this.currentBook = currentBook;
  }
  checkout(){};
  returnBook(){};
};

1 Answer

Steven Parker
Steven Parker
231,269 Points

It depends on whether the system is being created for a new library or replacing an old one in an existing library.

If patrons are added as they receive their borrowing privileges in a new library, then by definition they would never already have a "currentbook" to register.

But if this system was replacing an older one, then yes, it would be handy when creating records for existing patrons to add their current book as the record is created.