본문 바로가기

프론트엔드/Javascript

프로퍼티와 메소드의 차이

728x90
반응형
SMALL

프로퍼티와 메소드는 둘 다 사용하는 방식이 비슷하다.

어떤 게 프로퍼티고 어떤 게 메소드인지 구분이 어려울 수 있다.

 

어떤 걸 기준으로 판단하면 좋을까?

서론

 

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

 

728x90
LIST

'프론트엔드 > 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