함수와 메서드, 생성자의 차이점에 대해 알고 가는 것이 중요할 것 같다.
자바스크립트에서 함수는 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()
이 둘의 차이점은 무엇일까?