今天无意中给某网友解答了一些setTimeout的问题,发现一个有趣的东西。
以前我总认为setTimeout的第一个参数只能function,后面发现string也能执行。那问题来了,String做参数,使用的是哪个域?
function trace(){ console.log("out"); } function test(){ function trace(){ console.log("in"); } setInterval("trace()",1000); } test();
答案是window,不断的输出out,换成setTimeout也一样。
setInterval("window.trace()",1000);
setInterval("this.trace()",1000);
这两个呢?