所以,我有一个返回随机结果的函数,根据结果,我想调用另一个函数,但它现在不能正常工作:
$(document).ready(function () {
$('#classbutton').click(function () {
$('#resultclass').text(classX());
});
});
function subkrieger() {
var subkriegerNumber = Math.floor((Math.random()*2)+1);
switch (subkriegerNumber) {
case 1:
return "Berserkerin";
case 2:
return "Duellantin";
}
}
function classX() {
var classNumber = Math.floor((Math.random()*2)+1);
switch (classNumber) {
case 1:
return "Kriegerin";
return subkrieger();
case 2:
return "Mystikerin";
}
}
<button id="classbutton">Archetyp</button>
<div id="resultclass" class="results"></div>
所以,第一个函数是为第二个函数获取一个子幻想类,它随机返回一个幻想的RPG类。我尝试在第二个函数的第一个函数中调用第一个函数来尝试它,但没有发生任何事情。 我做错了什么?
并且有一种方法比使用一堆开关更优雅地做到这一点?
答案 0 :(得分:1)
这是你的问题:
return "Krieger";
return subkrieger();
break;
您正在返回一个字符串,该字符串结束了该函数的执行,因此您永远不会进入subkrieger()
调用。
如果您移除return "Krieger"
行,则会让它调用。如果你想要两者(比如像Krieger Berserkerin
这样的话,那么你会想要将它们连接起来(加上):
return "Krieger " + subkrieger();
或使用ES6风格:
return `Krieger ${subkrieger()}`;
旁注:在break;
之后有一个return
是多余的,因为它永远不会到达休息区,所以请将其关闭并执行:
case:
return "Krieger";