채린씨의 티스토리
25. method(!) 본문
* 함수의 정의
- 다양한 방법으로 함수의 정의가 가능하다는 것을 배웠었다.
https://cherish-my-codes.tistory.com/entry/21-%ED%95%A8%EC%88%98
- 어떤 방식으로 함수를 선언하든 다 잘 작동하긴 하는데, 각 함수의 세부 정보도 확인해보자.
- getOwnPropertyDescriptors()를 이용하면 객체의 property에 대한 정보를 모두 얻을 수 있다.
- getOwnPropertyDescriptorrs()에 대해 더 자세히 알고 싶다면? https://ko.javascript.info/property-descriptors
- property가 뭐야? https://opentutorials.org/module/3989/26054
- getOwnPropertyDescriptors()를 이용해 각 함수의 세부 정보 확인
- add_1 함수에 대한 정보 (그냥 대충만 보고 넘어가자)
- add_2 함수에 대한 정보 (add_1과 완벽히 똑같다. 같은 기능을 하는 다른 이름의 두 함수가 생성되었음을 알 수 있다.)
- add_3 함수에 대한 정보 (add_1, add_2보다 훨씬 간결하다. 내부적으로 객체를 생성하는 방식이 다르다는 것을 알 수 있다.)
- add_4 함수에 대한 정보 (name의 value가 add_1로 되어있다. add_1의 주소 자체를 복사해 온 것임을 알 수 있다.)
- == 연산을 이용하면 각 함수들의 관계를 더 쉽게 확인할 수 있다.
* 함수 저장
- 배열의 요소(element) 혹은 객체의 속성(property)에 함수를 저장 가능
- 그리고 객체의 속성에 함수를 저장할 때에는 func: function을 생략해도 함수를 저장할 수 있다!
- 위에서 같은 이름으로 서로 다른 일을 하는 함수를 세 개 만들어 봤다. 중복 선언이라 오류가 뜰 줄 알았는데 뭔가 신기하게 돌아간다.. 스코프 개념이 적용되는 걸까..? 구글링을 해봤는데 javaScript는 함수의 중복 선언이 가능한 대신, 가장 나중에 선언된 함수로 덮어써진다는 내용뿐이다.. 오키 이건 알겠는데요.. 위의 코드가 왜 돌아가는지는 모르겠어요..(틀왜맞?) 너도 해결될 때까지 느낌표 달린 제목행이야.. 엉엉
* method
- 객체에 property로서 저장된 함수를 메서드(method)라고 함
- 객체의 여러 데이터를 다루는 역할을 주로 수행함
* method 변경
- 객체 내 초기 선언된 함수를 다른 함수로 변경할 수 있음
* this
- 메서드에서 객체 내부의 속성(property)값을 접근할 수 있는 지시자
- 새롭고 헷갈리는 내용이 많아서 정리하는 데에 역대급으로 시간이 오래 걸렸다. 힘들구 괴로워.. 그치만 이것이 나중에 다~ 도움이 될것이야.. 열쩡! 열쩡! 열쩡~!~!~! ᕦ(Ò_Ó’)ᕤ
'자료구조, 알고리즘 > JavaScript 기초 문법' 카테고리의 다른 글
27. String (0) | 2022.03.07 |
---|---|
26. Number (0) | 2022.03.07 |
24. 연습문제 (0) | 2022.03.06 |
23. 콜백 함수 (2) | 2022.03.06 |
22. 재귀 함수 (0) | 2022.03.05 |