gpt4 book ai didi

javascript - 有没有办法访问尚未在 JavaScript 中定义的变量?

转载 作者:行者123 更新时间:2023-11-29 17:33:58 25 4
gpt4 key购买 nike

您好!

我正在尝试制作一个类似于 BlackThornProd channel 中的地牢生成程序,但 p5.js 除外。我有一个 spawner 函数来处理其他房间的生成,我将所有房间都作为函数,并且我有 4 个数组来存储不同的房间。我的问题是,我必须访问生成器函数中的数组,但是生成器函数必须在房间函数之上,而房间函数必须在数组之上。像这样:

var spawner = function(x, y, value) {
switch(value) {
case 1:
topRooms[random(0, topRooms.length)](x, y);
break;
case 2:
bottomRooms[random(0, bottomRooms.length)](x, y);
break;
case 3:
leftRooms[random(0, leftRooms.length)](x, y);
break;
case 4:
rightRooms[random(0, rightRooms.length)](x, y);
break;
}
};

var start = function(x, y) {
pushMatrix();
translate(x, y);
rect(-25, -25, 20, 1); //Top Left
rect(25, -25, -20, 1); //Top Right
rect(25, 25, -20, 1); //Bottom Right
rect(-25, 25, 20, 1); //Bottom Left
rect(25, -25, 1, 20); //Right Top
rect(25, 25, 1, -20); //Right Bottom
rect(-25, 25, 1, -20); //Left Bottom
rect(-25, -25, 1, 20); //Left Top
popMatrix();
};

var topRooms = [];
var bottomRooms = [];
var leftRooms = [];
var rightRooms = [];

如您所见,必须从阵列上方的生成器访问阵列。我不知道是否有办法访问代码下方的内容,但我使用的环境不喜欢它。

如果您知道解决方案,请回复。谢谢!

最佳答案

使用 var 关键字声明的数组会被提升,因此即使您稍后声明它们,它们也会被移动到脚本的顶部。

如果您的代码不完整(我没有看到填充数组的位置),那么您的问题可能出在尝试调用其中的函数时。

这可以通过调用函数前的简单检查来解决:

case 1:
topRooms[random(0, topRooms.length)] && topRooms[random(0, topRooms.length)](x, y);
break;

关于javascript - 有没有办法访问尚未在 JavaScript 中定义的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58974182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com