Bạn nên luôn sử dụng hasOwnProperty, nhưng trong nhiều trường hợp, điều này là không cần thiết. Ví dụ xem xét đoạn mã sau:hasOwnProperty khi nào cần sử dụng và khi nào không cần thiết?
var object = JSON.parse(somejsontext);
for(var prop in object) {
console.log(object[prop]);
}
Tôi biết trong trường hợp này mà prop
là một phần của đối tượng, nó được xác định bởi các explict for..in
.
Nhưng theo MOZ https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty chúng ta nên sử dụng nó để tránh iterating qua đạo cụ phi enumarable, với ví dụ này:
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
}
}
Nhưng kiểm tra mã này trên thực tế, không bao giờ đi vào khác.
Vì vậy, khi nào có ý nghĩa khi sử dụng hasOwnProperty
?
UPDATE: Xem xét câu trả lời choosen, chúng tôi safetly có thể tránh được việc sử dụng các hasOwnProperty trong trường hợp này: - Object
js chưa được mở rộng bởi bất kỳ thư viện javascript hoặc bởi mã của chúng tôi - Object
là một mã đơn giản mà chúng ta có thể kiểm soát trên
http://stackoverflow.com/questions/13632999/if-key-in-object-or-ifobject-hasownpropertykey – Andreas