我正在制作一种纸牌游戏,您尝试将每对纸牌数设为4,每位玩家询问另一位玩家是否具有一定的卡牌价值,如果拥有,则应将所有该值的卡牌交给该玩家问。
在askPlayer()函数中,我提示查看哪个玩家应该收到该问题。然后我返回任何输入。
function askPlayer() {
var askedPlayer = prompt('Which player do you want to ask?');
return askedPlayer;
}
在askCard()函数中,我将返回的任何askPlayer()都用在askCard()的提示中。
function askCard(player) {
var whichCard = prompt(player + ', all your:');
return whichCard;
}
但是,在代码的更深处的else语句中,我调用了这两个函数,首先使用askPlayer()返回的变量来进行askPlayer()然后AskCard()。这就是问题所在,当我这样写时,它会在提示消息中显示整个函数代码,而不是函数返回的内容。但是,当我这样添加参数时:
askCard(askPlayer());
再次调用askPlayer ..我在做什么错?以前一直使用这种方式,并且一直有效,所以我很困惑为什么现在不起作用。else {
askPlayer();
askCard(askPlayer);
}
最佳答案
您需要调用函数,而不仅仅是引用它:
function askCard(player) {
var whichCard = prompt(player() + ', all your:');
// () here ------------------^^
return whichCard;
}
function askPlayer() {
var askedPlayer = prompt('Which player do you want to ask?');
return askedPlayer;
}
function askCard(player) {
var whichCard = prompt(player() + ', all your:');
return whichCard;
}
document.getElementById("btn").onclick = function () {
askCard(askPlayer);
};
<button id="btn">Ask</button>
你说过:
我调用这两个函数,首先使用askPlayer()返回的变量来进行askPlayer()然后AskCard()。
但随后您显示此代码:
askPlayer();
askCard(askPlayer);
不会这样做。该代码调用
askPlayer
,然后丢弃其返回值。然后,它调用askCard
并传入askPlayer
函数引用。如果要使用askPlayer
的返回值,则必须...使用askPlayer
的返回值:var player = askPlayer();
askCard(player);
要么
askCard(askPlayer());
然后使用原始的
askCard
,因为您的参数不是函数,而是一个字符串:function askCard(player) {
var whichCard = prompt(player + ', all your:');
return whichCard;
}
function askPlayer() {
var askedPlayer = prompt('Which player do you want to ask?');
return askedPlayer;
}
function askCard(player) {
var whichCard = prompt(player + ', all your:');
return whichCard;
}
document.getElementById("btn").onclick = function () {
askCard(askPlayer());
};
<button id="btn">Ask</button>