是否可以在 Javascript 中更改或删除全局对象的属性
Is it possible to alter or delete properties of the global object in Javascript?
我只是在阅读有关全局对象的内容,并且想知道是否可以更改全局对象属性的值。我不知道这会有什么目的,但我很感兴趣。
以这段代码为例:
Infinity = 4; //Alter the property Infinity of the global object
//This doesn't prompt an error...
console.log(Infinity); //Yet, for some reason it still prints Infinity, instead of 4.
你也可以这样做吗:
delete Infinity;
console.log(Infinity)
这似乎是不可能的,因为Infinity仍然打印Infinity,而不是提示一个未定义的错误。
这取决于 - 属性是否可写/可配置?
Infinity
两者都不是,如以下控制台日志所示:
> Object.getOwnPropertyDescriptor(window,'Infinity')
< Object {value: Infinity, writable: false, enumerable: false, configurable: false}
但是,其他全局属性(如 frames
)是可配置的:
> Object.getOwnPropertyDescriptor(window,'frames')
< Object {value: Window, writable: true, enumerable: true, configurable: true}
因此,基本上,这取决于属性的设置方式。
好问题,但答案是否定的。 无法修改或删除全局对象。 全局对象是必需的,并且内置于 JavaScript 中。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects
相关文章:
- 使用php或javascript从facebook相册URL中删除多余的部分
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 全局变量和全局对象的属性之间有什么区别吗
- 正在全局范围中查找JavaScript函数
- 如何删除多行HTML排列中的空白
- delete关键字在全局变量上的不同行为
- 如何从rails中的代码中删除新行( )
- 在javascript函数中设置全局变量
- 如何将getJson的响应保存在全局变量中
- 改进js代码以删除全局变量和函数
- 删除两个函数使用的全局变量
- 从数组中删除元素,然后保留其状态以备将来使用,而不使用全局变量
- nodejs中的Javascript全局变量和属性-全局属性有时会被删除
- 蜘蛛猴:如何删除全局对象
- 删除全局变量 nodejs
- 是否可以在 Javascript 中更改或删除全局对象的属性
- 使用拉斐尔JS;在全局级别创建“论文” - 我可以创建多个论文,但不能删除它们
- 从全局范围中删除var
- Javascript-删除最后一个全局修饰符不起作用
- PrototypeJS:是否可以删除或撤消其全局修改