
대장 농부님 설명을 듣다보면 자꾸 헷갈리는게 있다.
내가 아는건 함수 function 인데, OOP를 사용하시는 대장님은 자꾸 method를 이야기하신다.
JAVA와 Javascript가 당연히 다른건 아는데, 이놈의 객체지향 때문에 내 머릿속에서 자꾸 꼬인다.
이리저리 꽈배기처럼 꼬인다구요 흑흑
난 함수가 너무 싫어 편에서 "이렇게 객체의 함수 프로퍼티를 메서드 methods라고 불렀었다."
라고 하는걸 보니, 객체 안에 있는 함수 프로퍼티를 메서드 라고 부르는거 같은데,
구글링 한 결과로는 이게 너무 확대해석이라는 거다.

함수를 전역 범위에서 선언하는 경우 window 객체로 호출 할 수 있음
function show2() {
console.log('show2() 함수 호출');
};
show2();
window.show2();
"전역 객체인 window 객체로 show2() 함수를 호출했으므로 show2() 함수는 메서드가 아닌가요?"
라고 생각할 수 있지만,
JavaScript에서 메서드라는 개념은 사용자가 정의한 객체의 프로퍼티가 함수인 경우임.
따라서 show2() 함수는 메서드가 아니라 함수입니다.
let obj = {
show1: function() {
console.log('show1() 메서드 호출');
}
}
obj.show1(); // 메서드
let funcCall = obj.show1;
funcCall(); // 함수
funcCall에 메서드를 할당했지만, funcCall을 호출하는 객체가 존재하지 않으므로 funcCall은 함수임