Home > Web Front-end > JS Tutorial > How Does JavaScript's `for...in` Loop Iterate Through Object Properties and How Can I Avoid Inherited Properties?

How Does JavaScript's `for...in` Loop Iterate Through Object Properties and How Can I Avoid Inherited Properties?

Susan Sarandon
Release: 2024-12-25 04:16:17
Original
217 people have browsed it

How Does JavaScript's `for...in` Loop Iterate Through Object Properties and How Can I Avoid Inherited Properties?

Iterating through Object Properties

In JavaScript, iterating through an object's properties is often done using a for...in loop. However, it's important to understand how this loop works.

Consider the following code:

var obj = {
    name: "Simon",
    age: "20",
    clothing: {
        style: "simple",
        hipster: false
    }
}

for(var propt in obj){
    console.log(propt + ': ' + obj[propt]);
}
Copy after login

This code logs the properties of the obj object using the propt variable. But how does propt know about these properties?

Understanding propt

The propt variable is a temporary variable that represents each property key in the obj object. When the loop runs, it iterates through the object's properties, assigning each property key to propt in turn.

This is because the for...in loop is not a builtin method or property. It's a language construct that iterates over the enumerable properties of an object.

The hasOwnProperty() Check

However, there is a potential issue with this approach. By default, for...in loops also iterate over inherited properties from the object's prototype chain. To avoid this, it's recommended to add a hasOwnProperty() check to the loop, such as:

for (var prop in obj) {
    if (Object.prototype.hasOwnProperty.call(obj, prop)) {
        // do stuff
    }
}
Copy after login

This check ensures that only properties specific to the obj object are included in the loop.

Alternatively, the hasOwnProperty() method can be called directly on the object:

if (obj.hasOwnProperty(prop)) {
    // do stuff
}
Copy after login

This approach is safer, especially when the object includes unrelated fields with the same name as built-in properties.

Conclusion

By understanding how the for...in loop iterates through object properties and how to avoid inherited properties, programmers can effectively manipulate object data in JavaScript.

The above is the detailed content of How Does JavaScript's `for...in` Loop Iterate Through Object Properties and How Can I Avoid Inherited Properties?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template