Desde _Object.defineProperty()_ :
Object.defineProperty(obj, prop, descriptor)
Sie können es entweder allen Ihren Objekten hinzufügen:
Object.defineProperty(Object.prototype, "length", {
enumerable: false,
get: function() {
return Object.keys(this).length;
}
});
Oder ein einzelnes Objekt:
var myObj = {};
Object.defineProperty(myObj, "length", {
enumerable: false,
get: function() {
return Object.keys(this).length;
}
});
Beispiel:
var myObj = {};
myObj.name = "John Doe";
myObj.email = "leaked@example.com";
myObj.length; // Output: 2
Auf diese Weise hinzugefügt, wird es nicht angezeigt in für in Schleifen:
for(var i in myObj) {
console.log(i + ": " + myObj[i]);
}
Ausgabe:
name: John Doe
email: leaked@example.com
Hinweis: Es funktioniert nicht in Browsern vor Internet Explorer 9 .