setTimeout与setInterval参数之String

今天无意中给某网友解答了一些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);
这两个呢?

 

posted @ 2015-12-17 21:31  给力叔  阅读(195)  评论(0编辑  收藏  举报