如何在Javascript中跟踪/保留全局命名空间

How to track/preserve global namespace in Javascript

本文关键字:保留 全局 命名空间 跟踪 Javascript      更新时间:2023-09-26

我想知道什么是跟踪某些外部java脚本对全局命名空间所做更改的最佳方法。例如,假设我有一个网站,我想知道在访问者的机器上运行的一些第三方软件正在将哪个对象添加到全局命名空间中。还有没有一种方法可以保护全局命名空间不受这些更改的影响?

ES5有Object.freeze用于"保留"对象:

Object.freeze(window);
Object.freeze(Object);
Object.freeze(Object.prototype);

等等。

ES6的代理API将允许您跟踪对象的更改,但规范仍在起草中。SpiderMonkey有一个原型实现。