Every object descended from Object inherits the hasOwnProperty method.
Every object descended from Object inherits the hasOwnProperty method. This method can be used to determine whether an object has the specified property as a direct property of that object; unlike the in operator, this method does not check down the object's prototype chain.
MDN
The isPrototypeOf mehtod allows you to check whether or not an object exists within another object's prototype chain.
The isPrototypeOf mehtod allows you to check whether or not an object exists within another object's prototype chain.
MDN
Every object has a propertyIsEnumerable method.
Every object has a propertyIsEnumerable method. This method can determine whether the specified property in an object can be enumerated by a for...in loop, with the exception of properties inherited through the prototype chain. If the object does not have the specified property, this method returns false.
MDN