admin管理员组

文章数量:1026989

In Javascript strict mode

Deleting an undeletable property is not allowed

To make sure that one do not delete such an undeletable property, how do one figure out property X is deletable and property Y is undeletable

The concept behind it is......?

In Javascript strict mode

Deleting an undeletable property is not allowed

To make sure that one do not delete such an undeletable property, how do one figure out property X is deletable and property Y is undeletable

The concept behind it is......?

Share Improve this question asked Dec 18, 2015 at 14:24 Mr.XMr.X 31.4k27 gold badges147 silver badges229 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 11

The concept behind this is...?

Property attributes. Every property that has its configurable attribute set to false cannot be deleted (which fails silently in sloppy mode and throws in strict mode).

How to figure out whether a property is deletable?

You can use the Object.getOwnPropertyDescriptor() function to access the attributes as an object:

var isDeletable = Object.getOwnPropertyDescriptor(obj, "propName").configurable;

Notice that this will only work for own properties of obj, not inherited ones; for those you will have to call the function on the respective prototype.

In Javascript strict mode

Deleting an undeletable property is not allowed

To make sure that one do not delete such an undeletable property, how do one figure out property X is deletable and property Y is undeletable

The concept behind it is......?

In Javascript strict mode

Deleting an undeletable property is not allowed

To make sure that one do not delete such an undeletable property, how do one figure out property X is deletable and property Y is undeletable

The concept behind it is......?

Share Improve this question asked Dec 18, 2015 at 14:24 Mr.XMr.X 31.4k27 gold badges147 silver badges229 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 11

The concept behind this is...?

Property attributes. Every property that has its configurable attribute set to false cannot be deleted (which fails silently in sloppy mode and throws in strict mode).

How to figure out whether a property is deletable?

You can use the Object.getOwnPropertyDescriptor() function to access the attributes as an object:

var isDeletable = Object.getOwnPropertyDescriptor(obj, "propName").configurable;

Notice that this will only work for own properties of obj, not inherited ones; for those you will have to call the function on the respective prototype.

本文标签: How to identify javascript undeletable propertiesStack Overflow