메서드와 함수는 어떻게 다를까?
이 둘은 비슷해 보이지만 다른 개념을 가지고 있다고 하며, 이 차이를 이해하고 있어야만 한다고 한다.
언뜻보면 function() 이라는 동일한 구문으로 선언하고 있어서 어떻게, 또 왜 다르게 구분되어서 써야하는지 알아보자.

일단 크게 정리를 먼저 해보자면,

  • 함수는 메소드를 포함하는 포괄적인 용어이다.
  • 함수객체로 부터 독립적 이지만, 메소드객체에 종속된다.
  • 메소드는 거의 모든 면에서 함수와 동일하지만, 메소드는 호출된 객체를 통해 전달되며 객체 안에 있는 데이터를 조작할 수 있다.

자바스크립트에서 객체는 키와 값으로 구성된 프로퍼티의 집합이다. (👉 참고: 변수는 객체?)
프로퍼티에서의 값이 함수일 경우 메소드라고 부른다.
함수를 호출하는 객체가 존재하는 경우 메소드라고 생각하면 된다.

var objectName = {
    obj: function() {
      console.log('메서드 호출');
    }
};

objectName.obj(); 

자바스크립트에서는 함수를 변수에 할당하여, 함수를 변수처럼 사용가능하다. 즉, 메서드도 변수에 할당이 가능하다.

var objectName = {
    obj: function() {
      console.log('메서드 호출');
    }
};

objectName.obj(); // 메서드 호출

var objectNew = objectName.obj; // 변수에 메서드를 할당
objectNew(); // 함수 호출

또한 객체를 먼저 정의한 후, 프로퍼티를 추가하는 방식으로도 사용이 가능하다.

var objectName = {};

objectName.obj = function() {
    console.log('메서드 호출');
}

objectName.obj();


Resources


Leave a Reply

Your email address will not be published. Required fields are marked *