Skip to content Skip to sidebar Skip to footer

Javascript DefineProperty To Make An Attribute Non Enumerable

I'm trying to use defineProperty to made attributes not appear in for...in cycle, but it doesn't work. Is this code correct? function Item() { this.enumerable = 'enum'; thi

Solution 1:

Item does not have a property named nonEnum (check it out). It is a (constructor) function that will create an object that has a property called nonEnum.

So this one would work:

var test = new Item();
Object.defineProperty(test, "nonEnum", { enumerable: false });

You could also write this function like this:

function Item() {
    this.enumerable = "enum";
    Object.defineProperty(this, "nonEnum", { 
        enumerable: false, 
        value: 'noEnum' 
    });
}

jsFiddle Demo


Post a Comment for "Javascript DefineProperty To Make An Attribute Non Enumerable"