JAVASCRIPT: зачем получать ReferenceError во внутренней функции? - PullRequest
0 голосов
/ 04 ноября 2011

Прежде всего, большая часть следующего кода, я думаю, не имеет отношения к вопросу, я просто думаю, что это будет больше, ну, если точно поместить всю часть кода. так что просто посмотрите на строку, которую я пометил первым, большое спасибо.

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 );
}   

}

Когда я ломаюсь на этой линии, и добавьте часы «я», а затем отладчик говорит

Exception: ReferenceError: i is not defined

затем я добавляю часы из массива выше, "planeWalls", а также получаю ReferenceError,

НО я также добавляю часы "scene", и отладчик правильно показывает его значение,

так что мне интересно, почему,

Я имею в виду, что внутренняя функция, очевидно, может использовать переменную "i", верно?

и затем я добавляю

alert(i);

в начале внутренней функции,

и затем отладчик правильно показывает «i».

Итак, есть ли намеки на это?

Большое спасибо.

1 Ответ

0 голосов
/ 04 ноября 2011

Скорее всего, это проблема отладчика, если alert () отображает ее, значит, она доступна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...