我试图迭代网站中定义的所有全局变量,但这样做我也得到了本机浏览器功能.
var numf=0; var nump=0; var numo=0;
for(var p in this) {
if(typeof(this[p]) === "function"){
numf+=1;
console.log(p+"()");
} else if(typeof p != 'undefined'){
nump+=1;
console.log(p);
} else {
numo+=1;
console.log(p);
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法确定某个函数是浏览器的本机函数还是脚本中创建的函数?
JavaScript可以轻松覆盖全局对象的属性和功能.我想找到一种方法来检查全局属性的原始版本是否已被替换.
考虑有人把它放在他们的HTML中:
<script type="text/javascript">
window.encodeURIComponent = eval;
</script>
<script type="text/javascript" src="myscript.js"></script>
Run Code Online (Sandbox Code Playgroud)
如果myscript.js在某处调用encodeURIComponent函数,它现在将表现得不可预测.那么有一种方法可以检查myscript.js内部是否有人在使用之前覆盖了该功能?