>  기사  >  웹 프론트엔드  >  JavaScript에 같은 이름의 메소드가 나타나면 어떻게 될까요?

JavaScript에 같은 이름의 메소드가 나타나면 어떻게 될까요?

醉折花枝作酒筹
醉折花枝作酒筹원래의
2021-07-21 14:39:072584검색

동일한 코드 세그먼트에 동일한 이름과 매개변수를 가진 두 개의 JS 메서드가 있는 경우 마지막으로 로드된 메서드가 이전 메서드를 덮어씁니다. 반대로 현재 코드 세그먼트에서 해당 메서드를 찾을 수 있으면 해당 메서드가 덮어쓰여집니다. 즉시 전화했습니다.

JavaScript에 같은 이름의 메소드가 나타나면 어떻게 될까요?

이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.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으로 문의하세요.