如何在JavaScript中检测非系统变量?

如何在JavaScript中检测非系统变量?,javascript,global-variables,detect,Javascript,Global Variables,Detect,如何检测用户定义的“窗口”的所有子级 我想检测window.test,但我不想获取window.Math。 有没有办法列出这些变量?你的问题很有趣,但没有显示任何研究成果。我建议你再补充一点信息。它可能对面临同样问题的读者有用 加载网页时,会得到一个新的窗口对象。因此,如果要检测自定义属性,最好将窗口的初始状态存储在代码的顶层。它将允许您稍后使用Object.getOwnPropertyNames()或Object.keys()检索新属性 Object.getOwnPropertyNames(

如何检测用户定义的“窗口”的所有子级

我想检测
window.test
,但我不想获取
window.Math
。 有没有办法列出这些变量?

你的问题很有趣,但没有显示任何研究成果。我建议你再补充一点信息。它可能对面临同样问题的读者有用


加载网页时,会得到一个新的
窗口
对象。因此,如果要检测自定义属性,最好将
窗口的初始状态存储在代码的顶层。它将允许您稍后使用
Object.getOwnPropertyNames()
Object.keys()
检索新属性

Object.getOwnPropertyNames()
var自定义键,
//我们保存包含窗口属性的数组的初始长度
nbProps=Object.getOwnPropertyNames(窗口).length;
//自定义属性
window.foo='foo';
window.bar='bar';
//我们获得了内部推送到阵列的最新属性
customKeys=Object.getOwnPropertyNames(窗口).slice(nbProps);
console.log(自定义键)