【问题标题】:How to access functions in javascript? [closed]如何访问javascript中的函数? [关闭]
【发布时间】:2014-07-18 04:53:02
【问题描述】:

代码:

<html>
<body>
<script>
    function mmm(x){
        var val= [10,20,30];
        return val;
    }
</script>
<script>
    function my(){
        var va= mmm();
        var b= va[1];
        document.write(b);
    }
</script>
</body>
</html>

上面的代码有错误,没有生成输出。我需要的是使用 document.write() 在 'my()' 函数中显示 'mmm(x)' 函数的 'val' 的内容。

这两个函数应该在不同的脚本标签中。我需要进行哪些更改?

【问题讨论】:

  • 是不是因为你没有打电话给my()?因为当我马上调用 my() 时,它肯定是 seems to work
  • 另外,mmm 接受参数并不重要,因为它没有使用任何参数。唯一的问题是,当您尝试缩小 JS 时,某些程序可能会引发关于未向函数发送适当数量的参数的错误。在我的测试中,它没有删除x,但如果你不使用它,你不妨删除它。
  • 大声笑......这甚至是一个问题......只有当我有能力关闭这个......
  • 看起来伙计们正在使用 stackoverflow 来解决学校作业;-)
  • 很好的尝试@MarmiK。但实际上我在面向工作的项目中遇到了这个问题。

标签: javascript html


【解决方案1】:

那是因为你没有在任何地方调用my 函数。

试试这个。

<html>
<body>
<script>
function mmm(x){
var val= [10,20,30];
return val;
}
</script>

<script>
function my(){
var va= mmm(1);
var b= va[1];
document.write(b);
}
</script>
</body>
<button onclick="my()">click</button>
</html>

我在这里所做的我有一个带有按钮的页面,当您单击该按钮时,它将调用该my 函数,您将在您的页面上获得20

【讨论】:

  • 函数 mmm(x) 有参数
  • @SujithKarivelil 任何未使用的方式,更新我的答案。
  • @Mritunjay:没错,但实际参数和形式参数需要在函数调用中匹配
  • @SujithKarivelil 感谢您的回复。
  • 谢谢。 x 不是必需的,我在其他代码中使用过它。所以...
【解决方案2】:

你没有调用函数my

<html>
<body>
<script type="text/javascript">
function mmm(x){
var val= [10,20,30];
return val;
}
</script>

<script type="text/javascript">
function my(){
var va= mmm();
var b= va[1];
document.write(b);
}

my();
</script>
</body>
</html>

【讨论】:

    【解决方案3】:

    试试这个代码:

    <script>
    function mmm(){ //unwanted parameter is removed
    var val= [10,20,30];
    return val;
    }
    </script>
    <script>
    function my(){
    var va= mmm();
    var b= va[1];
    document.write(b);
    }
    my();//calling method here
    </script>
    

    DEMO

    【讨论】:

    • 函数 mmm(x) 有参数
    • 您可以在没有参数的情况下调用它并对其进行测试。操作在函数中不使用该参数不是必需的。
    • 没错,但是函数调用中实际参数和形式参数需要匹配——
    • OP应该明白这一点。
    • @SujithKarivelil 这是不正确的。 JavaScript does not enforce argument lengths。也就是说,只有 API 级别的函数会限制这一点,主要是浏览器提供的原生 API 函数。但是在这种情况下,不带参数调用 mmm 是没有问题的。事实上,你可以用 more 来调用它,你仍然可以通过 arguments 对象来访问额外的参数。甚至还有一个 NPM package 旨在强制参数,因为 JavaScript 不会自行执行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多