프로퍼티와 메소드는 둘 다 사용하는 방식이 비슷하다.
어떤 게 프로퍼티고 어떤 게 메소드인지 구분이 어려울 수 있다.
어떤 걸 기준으로 판단하면 좋을까?
서론
java 같은 class based OOP 언어와 달리 prototype based programming 인 javascript 는 다소 그 의미가 헷갈릴 수 있다.
애초에 내가 생각했던 인스턴스가 실은 인스턴스가 아니고...사실 다 프로토타입 체인으로 연결되어 있고...
그러다보니 오브젝트 단위에서 property 랑 method 를 설명하니 헷갈릴만 하다.
javascript 에서 method 는 함수로 된 property이다.
그런데 우리가 일반적으로 프로퍼티를 지칭할 때 method 를 제외한 데이터 프로퍼티를 말하므로...(물론 getter setter 와 관련있는 accessor property 도 있다.)
구분해서 이야기를 하게 된다.
본론
그래서 어떻게 구분하면 좋을까?
기본적으로 두가지 방법이 있다.
의미로 구분하는 것과 사용방법으로 구분하는 것.
1- 의미로 구분하기
property 는 속성이라면 method 는 행동 이다.
예를 들어 listA 라는 array 가 있을 때, listA.length 는 property 이다.
그렇지만 listA.push(1) 은 method 이다.
2- 사용법으로 구분하기
위에서 javascript method 는 함수로 된 property 라고 언급했다.
함수의 가장 큰 특징! callable(호출할수있는) 하다는 것이다.
따라서 javascript 에서는 괄호로 함수를 호출하므로
대부분 괄호로 끝나면 method, 없으면 property 라 보아도 무방하다.
Object methods, "this"
javascript.info
'프론트엔드 > Javascript' 카테고리의 다른 글
이벤트 객체의 프로퍼티 (0) | 2022.01.10 |
---|---|
이벤트 (0) | 2022.01.10 |
문자열과 배열_차이점_비슷한 점 (0) | 2021.11.28 |
math 객체 (0) | 2021.11.28 |
배열_indexOf_lastIndexOf_includes_reversse (0) | 2021.11.28 |