함수, 메서드, 생성자

함수와 메서드, 생성자의 차이점에 대해 알고 가는 것이 중요할 것 같다.

자바스크립트에서의 함수

자바스크립트에서 함수는 1급 객체이다. 1급 객체란, 다른 객체들에게 일반적으로 적용이 가능한 연산들을 모두 지원하는 객체를 이야기한다.

메서드

객체에 의존성이 있는 함수이다.

왜 사용하는가?

생성자 함수

인스턴스를 생성하는 역할을 한다. 요즘 자바스크립트 ES6부터는 class 문법이 나와 그리 많이 사용되지는 않는다.

비교

// 함수
function func() {
  return this // global 객체를 가리킨다
}

// 메서드
const obj = {
  method() {
    return this // 해당 메서드를 호출한 객체를 가리킨다
  }
}

// 생성자 함수
function Func() {
  return this // 생성된 인스턴스를 가리킨다
}

func()
obj.method()
const instance = new Func()

argument vs parameter

이 둘의 차이점은 무엇일까?