我试图迭代网站中定义的所有全局变量,但这样做我也得到了本机浏览器功能.
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)
有没有办法确定某个函数是浏览器的本机函数还是脚本中创建的函数?
我无法弄清楚为什么以下代码不起作用:
var os = new Proxy(require('os'), {});
console.log( os.cpus() ); // TypeError: Illegal invocation
Run Code Online (Sandbox Code Playgroud)
然而
var os = require('os');
console.log(Reflect.apply(os.cpus, os, []));
Run Code Online (Sandbox Code Playgroud)
或者
var os = new Proxy(require('os'), {});
console.log( os.platform() );
Run Code Online (Sandbox Code Playgroud)
按预期工作。