Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用函数作为参数_Javascript_Html_Function_Syntax_Parameter Passing - Fatal编程技术网

Javascript 使用函数作为参数

Javascript 使用函数作为参数,javascript,html,function,syntax,parameter-passing,Javascript,Html,Function,Syntax,Parameter Passing,首先让我说,我确实是从搜索开始的,有一个非常类似的问题,但它的不同程度足以让我感到困惑 免责声明:我正在制作一个石头剪刀游戏作为家庭作业,只是有一个关于适当javascript函数/参数传递的快速问题 我有一个名为opponentRandom()的函数,它返回一个随机的“石头、布或剪刀”值作为对手(计算机)的选择 我有另一个函数compareChoices(),它将您的值(由html文档中的“onclick”确定)与oponentrandom()函数中的值进行比较 现在,在游戏所在的表格中,其中

首先让我说,我确实是从搜索开始的,有一个非常类似的问题,但它的不同程度足以让我感到困惑

免责声明:我正在制作一个石头剪刀游戏作为家庭作业,只是有一个关于适当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(),因为它嵌入在函数中。将其作为参数传递可能会让您拥有多个不同的随机化器函数,并在执行函数调用时选择要使用的函数。