• 技术文章 >web前端 >js教程

    javascript出现同名方法会怎样

    醉折花枝作酒筹醉折花枝作酒筹2021-07-21 14:39:07原创582

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

    本教程操作环境: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出现同名方法会怎样的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:JavaScript 同名方法
    上一篇:javascript如何设置width 下一篇:javascript中defer是什么
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• javascript的后缀是什么• Javascript如何获取body内容• javascript可以实现哪些效果• javaweb与javascript区别是什么• javascript如何设置width
    1/1

    PHP中文网