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 trialMoe Ghashim
11,109 PointsWhat difference does it make if I set `book.out = false` instead of `book._out = false`?
I'm trying to understand the difference since it's not showing an error in the console and it's returning the same value when I type book.out
in both cases.
3 Answers
Steven Parker
231,269 PointsBoth of them set the "_out
" property, one directly and the other (using "out") indirectly through the setter method. But the whole point of the underscore is to remind you to not access it directly. But it's not enforced by the system.
JavaScript doesn't have native support for private properties, but you can simulate them using closures. And if the current proposals get adopted, private properties may become part of the language in the near future.
Faiz Hamdan
5,215 PointsI'm having issue with the dueDate() after numerous amount of checking through all the code, i've even copy and paste the given code from setter method to the getter method, it doesn't seems to past in my date and time on the console. I've even past in the three object patron, dueDate and _out ".this", to the books.js class.
Faiz Hamdan
5,215 PointsI mean the console didn't past in the date and time. Currently the value is "null".
Faiz Hamdan
5,215 PointsThis is in the Patron class itself. I just include the code that needs to be check.
set out (out) {
const newDueDate = new Date();
newDueDate.setDate(newDueDate.getDate() + 14);
this.dueDate = newDueDate;
}
get out () {
return this._out;
}
On the course itself, Ashley showed the value dueDate on the console with the Day and Date. Mine was "null" even if i console the checkOut method.In conclusion, the value for dueDate is 'null'. Thanks for looking through my code. Cheers!
Steven Parker
231,269 PointsSteven Parker
231,269 PointsThe solution to the "out" setter is given on the course instruction page, so I won't repeat it here. But the important differences from it and the code you show here are:
_out
"Once you put those missing parts back in, your code will be able to set the value of "
_out
" and handle the dueDate correctly in both cases.