Use of hasOwnProperty
by Arnaud Buchholz
JavaScript
function log (text) {
document.body
.appendChild(document.createElement("div"))
.appendChild(document.createTextNode(text));
}
function ul(callback) {
var ul = document.body.appendChild(document.createElement("ul"));
callback(function (text) {
ul
.appendChild(document.createElement("li"))
.appendChild(document.createTextNode(text));
});
}
var myObject = {
member: "value",
"method": function () {
return this.property;
}
};
myObject.newProperty = "second value";
myObject["another property"] = "third value";
log("Without hasOwnProperty (before Object modification):");
ul(function (li) {
for (var name in myObject) {
var value = myObject[name];
li(name + ": " + typeof value);
}
})
Object.prototype.ABUBU_WAS_HERE = true;
log("Without hasOwnProperty (after Object modification):");
ul(function (li) {
for (var name in myObject) {
var value = myObject[name];
li(name + ": " + typeof value);
}
})
log("With hasOwnProperty (after Object modification):");
ul(function (li) {
for (var name in myObject) {
if (myObject.hasOwnProperty(name)) {
var value = myObject[name];
li(name + ": " + typeof value);
}
}
})