Consider:
function Shape() { this.name = "Generic"; this.draw = function() { return "Drawing " + this.name + " Shape&
hasOwnProperty expects the property name as a string, so it would be shape1.hasOwnProperty("name")
hasOwnProperty
shape1.hasOwnProperty("name")