Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
337 views
in Technique[技术] by (71.8m points)

js中全局变量的问题(three.js有关)

这小段代码是http://www.hewebgl.com/articl...中的
因为函数中 width 和 height 没有用 var 声明,隐式泄漏为全局变量 而且接下来的函数还要用到width和height,所以我就把它们放到函数体外,但是这两句挪出函数体外显示的效果就失败了(代码为了绘制一条线)

FireBug的报错:
Error in parsing value for ‘width’. Declaration dropped.
Error in parsing value for ‘height’. Declaration dropped.

var renderer;
        
            //width = document.getElementById('canvas-frame').clientWidth;
                //这两行写这(函数体外)无效
            //height = document.getElementById('canvas-frame').clientHeight;
        
            function initThree() {
        
               width = document.getElementById('canvas-frame').clientWidth;
                //这样有效
               height = document.getElementById('canvas-frame').clientHeight;
        
                renderer = new THREE.WebGLRenderer({
                    antialias : true
                });
        
                renderer.setSize(width, height);
        
                document.getElementById('canvas-frame').appendChild(renderer.domElement);
        
                renderer.setClearColor(0xFFFFFF, 1.0);
            }

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

声明变量的时候,建议加上var


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...