hasOwnProperty does not look at the prototype chain, the in operator does
Also, Book is a function, it does not have its own properties, it inherits methods like apply and call. Creating an instance of Book with new will create an object whose prototype chain starts with Book.prototype so it will see properties like title.
Book2 does not have a title attribute, it only sets a title attribute on a new object. Book2 does inherit the toString method from its prototype.
hasOwnProperty, as the name suggests, tells you whether this particular object itself has the given property. It does not look at the prototype. in tells you whether the object has the property anywhere, including its prototype chain.
Asked in February 2016Viewed 2,114 timesVoted 12Answered 2 times