gpt4 book ai didi

javascript:在构造函数中定义 var 使其无法使用

转载 作者:行者123 更新时间:2023-11-28 19:03:52 24 4
gpt4 key购买 nike

我用 JavaScript 编写了这段代码:

var engiszik;
var numOfCitizens = 10;

function Engiszi()
{
var chance = random(0, 100);
this.type = chance < 67 ? "r" : (chance < 87 ? "o" : "p");
this.mood = ((type === "o") ? random(60, 100, false) : (type === "p" ? random(0, 20) : random(0, 100, false)));
this.changePlace = random(0, 15, false);
}

initialize();
function initialize()
{
engiszik = [];
for(var i = 0; i < numOfCitizens; i ++)
engiszik.push(new Engiszi());
}

random 工作正常并返回一个数字。 ?: 部分似乎也是正确的(不完全确定:缺少括号会导致错误吗?)。

当我加载页面时,我在 engiszik.push(new Engiszi()); 行收到错误“找不到类型”。如果我从 Engiszi 的构造函数(以及使用它的东西)中删除变量 chance,它似乎可以工作。

这是什么原因造成的?构造函数中的 var 是否将 Engiszi 更改为普通函数而不是构造函数?我怎样才能找到解决这个问题的方法(我确实需要机会,但如果可能的话我不想将其声明为全局变量)?

最佳答案

让我们跟踪调用行之外的错误来自何处

"type not found" at the line engiszik.push(new Engiszi());

进入new Engiszi(),查找type

this.mood = ((type === "o") ? random(60, 100, false) : (type === "p" ? random(0, 20) : random(0, 100, false)));
// ^^^^ ^^^^

type 在哪里定义的?您是指 this.type 吗?

关于javascript:在构造函数中定义 var 使其无法使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32055405/

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