场景:我正试图找出一个带有复杂API的现有HTML/JavaScript网站.它为window对象添加了几个属性.我想列举仅限未建宏或默认的属性(如排除window.location,window.parent等等)
是否有惯用的JavaScript方法来做到这一点?我想在空白的HTML页面中做一个浅拷贝,然后在枚举真实的那个时候以某种方式"减去"这些属性.
理想情况下,我想要一种方法将对象转储到控制台或监视器中,好像没有常规window属性存在,只有那些添加了JavaScript源.
这是我在评论中提出的详细版本:
window.preexistingkeys = [];
for (var key in window) window.preexistingkeys.push(key);
// your convoluted api here
for (var key in window) {
if (window.preexistingkeys.indexOf(key)==-1) console.log(key, window[key]);
}
?
Run Code Online (Sandbox Code Playgroud)
请注意,在导入外部脚本之前,您可以在页面标题的开头执行第一部分.这是一个样本.