在使用javascript时,我有点菜鸟,但是我似乎无法找到返回“未定义”的原因
mineOre(userData.pickaxe, playerData.questid);
var newOre = new function () {
var chance = Math.floor(Math.random() * 100);
//console.log(chance);
/*
20% Iron
30% Coal
5% Diamond
3% Emerald
1% Brandons Hair
41% Stone
*/
if (chance < 20) {
return "Iron";
} else if (chance < 50) {
return "Coal";
} else if (chance < 55) {
return "Diamond";
} else if (chance < 58) {
return "Emerald";
} else if (chance < 59) {
return "BrandonsHair";
} else return "Stone";
}
function mineOre(pickaxe, questid) {
console.log(newOre);
}
答案 0 :(得分:2)
您要在初始化变量mineOre()
之前调用newOre
。如果在初始化之后将mineOre()
调用移至,那么您会看到newOre
是一个空对象。这是一个对象,而不是这些字符串之一,因为您的代码使用new
调用了该匿名函数。
如果要让newOre
成为这些字符串之一,请摆脱new
并在函数的}
关闭后添加括号:
var newOre = function () {
var chance = Math.floor(Math.random() * 100);
//console.log(chance);
/*
20% Iron
30% Coal
5% Diamond
3% Emerald
1% Brandons Hair
41% Stone
*/
if (chance < 20) {
return "Iron";
} else if (chance < 50) {
return "Coal";
} else if (chance < 55) {
return "Diamond";
} else if (chance < 58) {
return "Emerald";
} else if (chance < 59) {
return "BrandonsHair";
} else return "Stone";
}();