Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트(JavaScript)에서 함수와 메소드의 차이점은 무엇일까?

자바스크립트에서 함수(Function)메소드(Method)는 본질적으로 같은 개념입니다. 다만 결정적인 차이가 하나 있는데, 바로 메소드는 객체의 속성(property)으로 정의된 함수라는 점입니다.

즉, 독립적으로 존재하는 함수는 '함수'라고 부르고, 특정 객체에 소속되어 그 객체의 속성으로 포함된 함수는 '메소드'라고 부릅니다.

자바스크립트에서의 함수 예시

먼저 일반적인 함수를 선언하는 기본 문법은 다음과 같습니다.

function functionname(param1, param2){
    // 실행할 코드
}

자바스크립트에서의 메소드 예시

메소드는 객체와 연관된 함수를 의미합니다. 아래 예제에서는 employee 객체 안에 details라는 메소드를 정의하고 호출하는 방법을 보여줍니다.

<html>
    <head>
        <script>
            var employee = {
                empname: "David",
                department : "Finance",
                id : 002,
                details : function() {
                    return this.empname + " with Department " + this.department;
                }
            };

            document.write(employee.details());
        </script>
    </head>
</html>

코드 설명

위 코드에서 employee 객체는 직원 이름(empname), 부서(department), 사번(id)이라는 속성을 가지고 있습니다. 여기에 details라는 함수가 객체 내부에 속성 형태로 정의되어 있으므로, 이것이 바로 메소드입니다.

메소드 내부에서 사용된 this 키워드는 해당 메소드가 속한 객체 자신, 즉 employee 객체를 가리킵니다. 따라서 this.empname은 "David"를, this.department는 "Finance"를 반환하게 됩니다.

실행 결과

위 코드를 브라우저에서 실행하면 다음과 같은 결과가 출력됩니다.

자바스크립트(JavaScript)에서 함수와 메소드의 차이점은 무엇일까?

정리

  • 함수(Function): 독립적으로 선언되어 호출될 수 있는 코드 블록
  • 메소드(Method): 객체의 속성으로 정의된 함수로, 해당 객체와 연관된 동작을 수행

결국 메소드도 함수의 한 종류이며, 객체에 소속되어 있느냐의 차이만 있을 뿐 두 개념은 자바스크립트에서 동일한 구조를 공유합니다.