Zaleca się, aby zawsze używać hasOwnProperty, ale w wielu przypadkach nie jest to konieczne. Na przykład rozważmy następujący kod:hasOwnProperty kiedy używać, a kiedy nie jest potrzebne?
var object = JSON.parse(somejsontext);
for(var prop in object) {
console.log(object[prop]);
}
wiem, że w tym przypadku prop
stanowi część obiektu, jest explict definiować przez for..in
.
Ale według MOZ https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty powinniśmy używać go w celu uniknięcia Iterowanie nad non-enumarable rekwizytów, z tego przykładu:
var buz = {
fog: 'stack'
};
for (var name in buz) {
if (buz.hasOwnProperty(name)) {
console.log('this is fog (' + name + ') for sure. Value: ' + buz[name]);
}
else {
console.log(name); // toString or something else
}
}
Ale testowania tego kodu rzeczywiście, nigdy nie idzie do innego.
Kiedy zatem ma sens zastosowanie hasOwnProperty
?
UPDATE: Biorąc pod uwagę odpowiedź wybrany poniżej, możemy safetly unikać stosowania hasOwnProperty w tych przypadkach: - Object
js nie została rozszerzona o dowolnej biblioteki javascript lub przez naszego kodu - Object
jest prosty kod, który mamy kontrolę pod numerem
http://stackoverflow.com/questions/13632999/if-key-in-object-or-ifobject-hasownpropertykey – Andreas