javascript - script.onload运行时,miniConsole指的是js文件中的对象,为什么不是html里miniConsole对象?
怪我咯
怪我咯 2017-04-11 11:28:36
0
2
574

(代码简化自js设计模式与开发实践P99)
如下代码中,当F2触发后,执行的函数中的miniConsole指的是miniConsole.js中的对象,而不是html里miniConsole对象,为什么??

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
      
    </style>
</head>
<body>

<script type="text/javascript">
var miniConsole = (function(){
    var cache = [];
    var handler = function(ev){
        console.log("f2 triggle");
        if(ev.keyCode === 113){
            var script = document.createElement('script');
            script.onload = function(){
                for(var i=0,fn ; fn=cache[i++] ; ){
                    fn();
                }
            };
            script.src='miniConsole.js';
            document.getElementsByTagName('head')[0].appendChild(script);
            document.body.removeEventListener('keydown',handler); 
        }       
    }

    document.body.addEventListener('keydown',handler,false);
    return {
        log:function(){
            var args = arguments;
            cache.push(function(){
                console.log(miniConsole);
                return miniConsole.log.apply(miniConsole,args);
            })
        }
    }
})();


</script>
</body>
</html>

miniConsole.js

var miniConsole = {
    log:function(){
        console.log('lg');
    }
}
怪我咯
怪我咯

走同样的路,发现不同的人生

reply all(2)
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!