这是我的代码:
//Player Loadout
//Version 1.0 by Madi Magdy
function Player(name,sex,side) {
this.name = name;
this.sex = sex;
this.side = side;
}
//var newPlayer = new Player(prompt("Please enter your name"),prompt("Please enter your sex"),prompt("Please enter your nationality"));
//console.log("Hello " + newPlayer.name + "!");
function Class(classType,mainWeapon,sideWeapon) {
this.classType = classType;
this.mainWeapon = mainWeapon;
this.sideWeapon = sideWeapon;
}
assaultClass = new Class("Assault","M416","M9");
engineerClass = new Class("Engineer","AK5C","P226");
reconClass = new Class("Recon","SRR61","Deagle44");
supportClass = new Class("Support","M249","M1911");
classChooser = function(playerChoice) {
if (playerChoice === assaultClass.classType) {
console.log("You chose the " + assaultClass.classType + " " + "class! Your default weapons are " + assaultClass.mainWeapon + " " + "and " + assaultClass.sideWeapon);
}
else if (playerChoice === engineerClass.classType) {
console.log("You chose the " + engineerClass.classType + " " + "class! Your default weapons are " + engineerClass.mainWeapon + " " + "and " + engineerClass.sideWeapon);
}
else if (playerChoice === reconClass.classType) {
console.log("You chose the " + reconClass.classType + " " + "class! Your default weapons are " + reconClass.mainWeapon + " " + "and " + reconClass.sideWeapon);
}
else if (playerChoice === supportClass.classType) {
console.log("You chose the " + supportClass.classType + " " + "class! Your default weapons are " + supportClass.mainWeapon + " " + "and " + supportClass.sideWeapon);
}
};
classChooser(prompt("Please choose your class! Type in Assault or Engineer or Recon or Support!"));
classWeapons = function(weapon,attach,camo) {
this.weapon = weapon;
this.attach = attach;
this.camo = camo;
};
yourClassWeapons = new classWeapons(prompt("Choose your weapon"),prompt("Choose your weapon attachment"),prompt("Choose your camouflage color"));
var classChosen = function(yourChosenClass) {
if (yourChosenClass === assaultClass.classType) {
console.log("Your weapons are listed as follows");
console.log(yourClassWeapons);
}
else {
console.log("NOPE");
}
};
classChosen(classChooser()); //I also tried classChosen(classChooser);当我试图将classChooser函数作为参数传递到我的classChosen函数中时,当提示时输入字符串“攻击”,在if之后的语句永远不会执行,但else会执行。我犯了什么错误?
发布于 2016-01-22 21:01:06
主要的问题是,您没有将您认为要传递的内容传递给classChosen。按照它的方式,变量yourChosenClass是undefined,这就是它不等于assaultClass.classType的原因。
您需要存储播放机选择的值,或者从classChooser返回它。另外,如果classChooser的提示符是函数的一部分,而不是作为参数传递,对您的代码来说会好得多。所以可能是这样的:
classChooser = function() {
var playerChoice = prompt("Please choose your class! Type in Assault or Engineer or Recon or Support!");
if (playerChoice === assaultClass.classType) {
console.log("You chose the " + assaultClass.classType + " " + "class! Your default weapons are " + assaultClass.mainWeapon + " " + "and " + assaultClass.sideWeapon);
}
else if (playerChoice === engineerClass.classType) {
console.log("You chose the " + engineerClass.classType + " " + "class! Your default weapons are " + engineerClass.mainWeapon + " " + "and " + engineerClass.sideWeapon);
}
else if (playerChoice === reconClass.classType) {
console.log("You chose the " + reconClass.classType + " " + "class! Your default weapons are " + reconClass.mainWeapon + " " + "and " + reconClass.sideWeapon);
}
else if (playerChoice === supportClass.classType) {
console.log("You chose the " + supportClass.classType + " " + "class! Your default weapons are " + supportClass.mainWeapon + " " + "and " + supportClass.sideWeapon);
}
return playerChoice;
};
classChosen(classChooser());
// or...
// var playerChosenClass = classChooser();
// classChosen(playerChosenClass);此外,选择武器也可以采用类似的方式:
weaponChooser = function() {
var weapon = prompt("Choose your weapon");
var attachment = prompt("Choose your weapon attachment");
var camo = prompt("Choose your camouflage color");
return new classWeapons(weapon, attachment, camo);
}
yourClassWeapons = weaponChooser();https://stackoverflow.com/questions/34955558
复制相似问题