Javascript 为什么在内部函数中获取ReferenceError?
首先,我认为下面的大部分代码与这个问题无关,我只是认为它会更多,嗯。。确切地说,就是把代码的整个部分放进去。Javascript 为什么在内部函数中获取ReferenceError?,javascript,three.js,dom-events,Javascript,Three.js,Dom Events,首先,我认为下面的大部分代码与这个问题无关,我只是认为它会更多,嗯。。确切地说,就是把代码的整个部分放进去。 请看我首先标记的那行: window.onload = function() { var WebGLSupported = isWebGLSupported(); var renderer = WebGLSupported ? new THREE.WebGLRenderer() : new THREE.CanvasRenderer(); renderer.setSize( window
请看我首先标记的那行:
window.onload = function() {
var WebGLSupported = isWebGLSupported();
var renderer = WebGLSupported ? new THREE.WebGLRenderer() : new THREE.CanvasRenderer();
renderer.setSize( window.innerWidth, 600 );
document.body.appendChild( renderer.domElement );
var scene = new THREE.Scene();
var camera = new THREE.Camera(35,window.innerWidth/600,.1,10000);
camera.position.set( -5, 5, 25 );
var light = new THREE.PointLight( 0xffffff, .4 );
light.position.set( 10, 10, 10 );
scene.addLight( light );
var ambientLight = new THREE.AmbientLight( 0xbbbbbb );
scene.addLight( ambientLight );
var materialClass = WebGLSupported ? THREE.MeshLambertMaterial : THREE.MeshBasicMaterial;
var materialWall = new materialClass( { color: 0xffffff, map: THREE.ImageUtils.loadTexture( 'posts/wholewall.png' ) } );
var i;
var planeWalls=new Array();
for (i=1;i<=10;i++){
planeWalls[i]=new THREE.Mesh(new THREE.PlaneGeometry(18,11,1,1), materialWall);
planeWalls[i].position.z=i*(-5);
scene.addChild(planeWalls[i]);
}
camera.lookAt(planeWalls[1].position);
animate();
function animate() {
renderer.render( scene, camera ); <<-------BREAK AT HERE
requestAnimFrame( animate );
}
}
在内部功能的开始
然后调试器正确显示i
那么,有什么提示吗?如果alert()显示它,很可能是调试器问题,这意味着它是可访问的
alert(i);