欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

javascript出现同名方法会怎样

程序员文章站 2022-03-09 11:46:01
...

如果在两个同名同参的JS方法同一个代码段内部,则最后加载的方法会将前一个覆盖掉,反之,如果能在当前代码段找到对应的方法,就立即调用。

javascript出现同名方法会怎样

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

在JS中,如果存在同名同参的方法,它会先调用哪一个?先看两个例子:

例1:

<html>
<head>
    <title></title>
    <script type="text/javascript">
        function btnTest() {
            $f1();
            $f2();
        }

        function A() {
            alert(1);
        }
        var $f1 = A;
    </script>
    <script type="text/javascript">
        function A() {
            alert(2);
        }
        var $f2 = A;
    </script>
</head>

<body>
    <form>
        <div>
            <input type="button" name="Testing" οnclick="btnTest();" value="TEST" />
        </div>
    </form>
</body>
</html>

结果会弹出:1 2

例2:

<html>
<head>
    <title></title>
    <script type="text/javascript">
        function btnTest() {
            $f1();
            $f2();
        }

        function A() {
            alert(1);
        }
        var $f1 = A;
    
        function A() {
            alert(2);
        }
        var $f2 = A;
    </script>
</head>

<body>
    <form>
        <div>
            <input type="button" name="Testing" onclick="btnTest();" value="TEST" />
        </div>
    </form>
</body>
</html>

结果会弹出:2 2

这和当前的代码段有很大关系,如果在两个同名同参的JS方法同一个代码段内部,则最后加载的方法会将前一个覆盖掉,反之,如果能在当前代码段找到对应的方法,就立即调用。

在JS中,如果存在同名不同参的方法,它会先调用哪一个?再看两个例子:

例1:

<html>
<head>
    <title></title>
    <script type="text/javascript">
        function btnTest() {
            var val = document.getElementById("txtVal").value;
            if (val > 10) {
                A();
            }
            else {
                A(val);
            }
        }

        function A() {
            alert(1);
        }

        function A(val) {
            alert(2);
            alert(val);
        }
        
    </script>
</head>

<body>
    <form>
        <div>
            Input Value(INT):<input type="text" id="txtVal"/><br>
            <input type="button" name="Testing" onclick="btnTest();" value="TEST" />
        </div>
    </form>
</body>
</html>

例2:

<html>
<head>
    <title></title>
    <script type="text/javascript">
        function btnTest() {
            var val = document.getElementById("txtVal").value;
            if (val > 10) {
                A();
            }
            else {
                A(val);
            }
        }

        function A() {
            alert(1);
        }
    </script>
    <script type="text/javascript">
        function A(val) {
            alert(2);
            alert(val);
        }
    </script>
</head>

<body>
    <form>
        <div>
            Input Value(INT):<input type="text" id="txtVal"/><br>
            <input type="button" name="Testing" onclick="btnTest();" value="TEST" />
        </div>
    </form>
</body>
</html>

测试结果:同名不同参的方法会用最后加载的方法会将前一个覆盖掉!

【推荐学习:javascript高级教程

以上就是javascript出现同名方法会怎样的详细内容,更多请关注其它相关文章!