如何在JavaScript中运行函数内部的函数

时间:2018-03-20 23:51:45

标签: javascript html

我在函数内运行函数时遇到一个小问题。希望你们能指导我。

<html>
<body>

<p id="demo"></p>

<script>
function myFunction()
{
    function play(a, b)
    {
        document.getElementById("demo").innerHTML = a * b;
    }
}

myFunction().play(2,3);

</script>
</body>
</html>

4 个答案:

答案 0 :(得分:3)

要保持当前使用情况,请尝试以下操作:

function myFunction()
{
    return {
        play: function(a, b)
        {
            document.getElementById("demo").innerHTML = a * b;
        }
    }
}

myFunction().play(2,3);

答案 1 :(得分:0)

所以,您使用let mut dst = Vec::with_capacity(required_size); dst.extend(iterator); 所做的事情是嵌套在私密的&#39;函数myFunction在里面,所以外面不能调用它。所以你可以返回内部函数或者调用在函数内部播放,只调用play

myFunction

或删除嵌套,只需

function myFunction(a, b) {
    function play(a, b) {
        document.getElementById("demo").innerHTML = a * b;
    }
    play(a, b);
}
myFunction(2,3); // will set innerHTML of demo to a*b

答案 2 :(得分:0)

您将无法访问当前正在调用的播放功能。播放功能超出范围。

function myFunction()
{
    function play(a, b)
    {
        document.getElementById("demo").innerHTML = a * b;
    }

    play(2,3);
}

myFunction()

这应该对你有用

答案 3 :(得分:0)

您无法执行此操作,因为函数play仅存在于函数myFunction中,并且其外部的所有内容都无法执行。

另一种方法是返回一个名为play的属性的对象,其值是您需要执行的函数。

function myFunction() {
  return {
    play: function(a, b) {
      document.getElementById("demo").innerHTML = a * b;
    }
  }
}

myFunction().play(2, 3);
<p id="demo"></p>