Javascript 使用函数作为参数
首先让我说,我确实是从搜索开始的,有一个非常类似的问题,但它的不同程度足以让我感到困惑 免责声明:我正在制作一个石头剪刀游戏作为家庭作业,只是有一个关于适当javascript函数/参数传递的快速问题 我有一个名为opponentRandom()的函数,它返回一个随机的“石头、布或剪刀”值作为对手(计算机)的选择 我有另一个函数compareChoices(),它将您的值(由html文档中的“onclick”确定)与oponentrandom()函数中的值进行比较 现在,在游戏所在的表格中,其中一个表格数据(给大家一个点击其中一张图片的例子)如下所示:Javascript 使用函数作为参数,javascript,html,function,syntax,parameter-passing,Javascript,Html,Function,Syntax,Parameter Passing,首先让我说,我确实是从搜索开始的,有一个非常类似的问题,但它的不同程度足以让我感到困惑 免责声明:我正在制作一个石头剪刀游戏作为家庭作业,只是有一个关于适当javascript函数/参数传递的快速问题 我有一个名为opponentRandom()的函数,它返回一个随机的“石头、布或剪刀”值作为对手(计算机)的选择 我有另一个函数compareChoices(),它将您的值(由html文档中的“onclick”确定)与oponentrandom()函数中的值进行比较 现在,在游戏所在的表格中,其中
<td onclick="comparisonChoices('paper', 'opponentRandomizer()**;**');">
<img src="paper.jpg" alt="paper" />
</td>
现在,比较中的第一个参数应该是您的选择,我真的希望我可以轻松地调用td onclick中compareChoices函数中的opponentRandom函数,因为这样,随机结果将在compareChoices函数中考虑
这行吗?是否允许将一个函数作为参数抛出到另一个被调用函数中?opponentRandom函数确实返回一个石头、布、剪刀值,然后比较函数确定您是赢了、输了还是平局。我不知道合适的语法,或者我是否能够做到这一点,我还没有将javascript集成到我的html中,我不知道任何简单的方法来实现它,直到我拥有了游戏运行所需的所有功能
TL;DR-能否将一个返回值的函数放在另一个被调用为onclick=“function(param,'function()”;”的函数中
还有,我上面的粗体分号应该在那里吗?(编辑:****没有显示为粗体,但我指的是被****包围的分号)有什么问题:
function comparisonChoices(selection) {
other_selection = opponentRandomizer();
etc....
}
?是的,您可以将函数放入函数调用参数中,该参数将内部函数的返回作为参数传递给外部函数,但必须删除引号。通过引用它,您传递的是文本字符串
opponentRandomizer()
,而不是函数调用。并删除代码>comparisonChoices('paper',opponentrandominizer())
JavaScript是一种非常灵活的语言,它实际上允许您传递函数引用(没有()
),但这似乎不是您的情况。我非常感谢您,您是一位学者和绅士,如下面的答案所示,您可以在comparisonChoices()
中调用对手函数……啊,非常正确。我没想过。我通过传递参数所做的与你所做的相比,有什么缺点吗?很奇怪,这个方法只调用opponentrandomizer(),因为它嵌入在函数中。将其作为参数传递可能会让您拥有多个不同的随机化器函数,并在执行函数调用时选择要使用的函数。