Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 4612716
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 22, 20262026-05-22T01:26:26+00:00 2026-05-22T01:26:26+00:00

Why are the built-in properties on javascript objects not iterated through when using the

  • 0

Why are the built-in properties on javascript objects not iterated through when using the for-in control block, while user-defined properties are?

For example:

var y = 'car';
for (var j in y)
{
    console.log(j);
}

Will print:

0
1
2

Even though String.prototype has properties for length, replace, substring, etc.

If extending the prototype, however, any new properties are iterated over:

String.prototype.foo = 7;
var y = 'car';
for (var j in y)
{
    console.log(j);
}

Will print:

0
1
2
foo
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-22T01:26:27+00:00Added an answer on May 22, 2026 at 1:26 am

    Basically, the built-in properties are marked as “non-enumerable” internally. This means, naturally, they aren’t enumerated.

    Edit: as Andy kindly pointed out, you can set enumerable : false in the current version of JavaScript using defineProperty. However, this seems to not be supported Opera at all; IE 8 only supports it on DOM objects and Safari only supports it on non-DOM objects (defineProperty on MDN (look towards bottom of file for browser support)).

    All this cross-browser fun means that you probably shouldn’t rely on this behavior if you need consistent browser support.

    Here is how you could define a non-enumerable property:

    Object.defineProperty(String.prototype, "foo", {value : 7, enumerable : false});
    

    You don’t actually need to include enumerable : false—it is false by default when calling defineProperty.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

jshashtable states: JavaScript's built-in objects do provide hashtable functionality using the square brackets notation
I built a template-based document generator using the Open XML SDK (1.0) , the
I have jQuery but I'm not sure if it has any built-in sorting helpers.
Extending UserPrincipal to take advantage of its built-in properties... running into an issue when
There are a lot of built in methods and properties in C# and .NET,
I need to be able to merge two (very simple) JavaScript objects at runtime.
I have tried finding a simialr example and using that to answer my problem,
Is there a method built into .NET that can write all the properties and
I've built a Visual Studio add-in that is specific to class properties and fields.
I'm trying to build an object in javascript using self-invoking functions to set the

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.