最佳答案
当你写下:
window.dog = 1;
您显式在名为dog
的全局window
对象上创建一个新属性。因此,当它被创建时,它的 configurable
开关设置为 true
。您随后声明的事实
var dog = 6;
不会改变该属性已显式创建的事实。
当您声明时:
var cat = 9;
您隐式在全局window
对象上创建一个名为cat
的属性。通过这种方式创建,该属性的 configurable
开关设置为 false
。
要点是,全局属性通常是一件坏事,在极少数情况下,当您可能需要全局属性时,最好明确说明它,以提高可读性,而且(正如您所发现的)与他们合作的灵 active 。
关于javascript - 有人可以解释这个 getOwnPropertyDescriptor 和删除行为吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42880303/