有人可以解释这个getOwnPropertyDescriptor并删除行为吗?

时间:2017-03-18 21:52:04

标签: javascript javascript-objects

在尝试删除全局(窗口)对象时,我遇到了以下行为,我想知道是否有人可以解释设置propertydescriptors背后的基本原理。

enter image description here

我不明白这有多大意义。 感谢。

Firefox 52.0.1(32位)Windows 7。

1 个答案:

答案 0 :(得分:2)

当你写:

window.dog = 1; 

明确 在名为window的全局dog对象上创建新属性。因此,在创建它时,会将configurable开关设置为true来创建它。然后你宣布

var dog = 6;

不会改变已明确创建属性的事实。

宣布:

var cat = 9;

隐式 在全局cat对象上创建名为window的属性。通过这种方式创建,该属性将configurable开关设置为false

关键是全局属性通常是一件坏事,并且在极少数情况下你可能想要一个,最好明确它,为了可读性,而且(你已经发现)最多与他们合作的灵活性。