Wii Pointer #1 Tilt Normal
본문 바로가기
📁𝐩𝐫𝐨𝐠𝐫𝐚𝐦𝐦𝐢𝐧𝐠𝐋𝐚𝐧𝐠𝐮𝐚𝐠𝐞/JavaScript

[JavaScript 심화] JS Study 일지 (4일차)

by 개발자_후니 2023. 1. 25.
728x90
반응형

1. this

01. this 생각해볼 것들


📌 🤔 : 아래의 내용들은 이번 장에서 얻을 수 있는 지식들입니다. 이러한 것들을 배운다고 생각하고 챕터를 읽어가주세요, 다 읽은 이후에 아래의 질문에 대한 답을 답할 수 있으면 완벽합니다.

 

1.전역 객체란 무엇을 의미하는 것 일까요?

2.다른 언어의 객체와 자바스크립트의 객체는 어떻게 다를까요?

3.그렇다면 this는 어떻게 달라질까요?

4.함수와 메서드의 차이에 대해서 조금 더 알게된게 있을까요? 지난번에 했던 답과는 어떻게 다를까요?

02. this KeyWord


📌 🤔 : 이번 장에서 가장 중요한 키워드입니다. 4장을 읽고 아래의 단어들을 조금 더 이해하는게 오늘의 목표입니다. 천천히 읽어보시고, 각 조원분들과 적당하게 나눠서 아래의 키워드를 직접 설명해주세요.

 

전역, 전역객체, 렉시컬 환경, 전역 객체의 렉시컬 환경, 메서드, 함수, 프로퍼티, 할당, 호출

03. this Questions


📌 Questions에 대한 답은 팀원분들과 함께 작성해주세요, 내용을 작성하는데 필요한 개념이나 단어들을 모르는 팀원이 없도록 서로 설명해가며 작성해야합니다. 최종적으로 제출한 답변에 있는 개념이나 단어는 모두가 알고 있어야 합니다.

 

1.책에서 self 변수로 선언을 해서 만들어서 구현하려고 했던 'this'는 어떤 것 때문에 그렇게 구현했을까요?

2.다시 함수와 메서드의 차이를 말씀해주세요

3.프로퍼티에 할당, 메서드로서의 호출을 설명해주세요

4."this 가 주는 인상"이라는 개념을 본인이 생각한대로 아는만큼 작성해주세요.

 

 

04. this Answers


Question 01.

❓ 1.책에서 self 변수로 선언을 해서 만들어서 구현하려고 했던 'this'는 어떤 것 때문에 그렇게 구현했을까요?

 

주재훈 :

innerFunc1 에서의 this 는 전역 객체를 의미. innerFunc2 에서의 this 는 객체 obj를 의미.

따라서, 상위 스코프의 this를 저장해서 내부 함수에 활용하려고. 쉽게 풀어서 설명하자면, 전역 객체 에서의 함수가 아닌 객체 obj 에서의 메소드로 활용하려고 한 것이다.

 

Question 02.

❓ 2.다시 함수와 메서드의 차이를 말씀해주세요

 

주재훈 :

한 문장으로 표현하자면, 독립성의 차이. 풀어서 설명하면, 함수는 그 자체로도 독립적인 기능을 수행. 메서드는 자신을 호출한 대상 객체에 관한 동작을 수행. 따라서, 결과 값이 객체 내부에 있는 요소들에 영향을 받을 것.

 

Question 03.

❓ 3.프로퍼티에 할당, 메서드로서의 호출을 설명해주세요

 

주재훈 :

프로퍼티에 할당 : 전역변수에 함수를 할당하고, 새로운 변수에 객체를 할당. 그 객체의 프로퍼티에 앞에서 만든 함수를 할당 (이럴 때에는 this 가 새로운 변수의 객체의 프로퍼티) 이러면, 함수를 프로퍼티에 할당했다고 할 수있다.

메서드로서의 호출 :
객체 . 프로퍼티 (매개변수) 같은 형태이면, 메서드로서의 호출이라고 할 수 있다. ← 이 점이 메서드로서의 호출로 결정지어주는 것이라고 생각하면 된다. 이에 더해 대괄호 표기법 [ ] 에 따른 경우에도 메서드로서 호출

 

Question 04.

❓ 4."this 가 주는 인상"이라는 개념을 본인이 생각한대로 아는만큼 작성해주세요.

 

주재훈 :

함수가 호출할 대상이 어디인지 바운더리를 정확하게 짚어주는 것이라 생각한다.

this 를 활용하면

함수가 메서드로 활용될 수 있고.

내가 의도 하고자 하는 부분만 적용할 수 있다.

 

 

2. 콜백 함수

01. 콜백 함수 생각해볼 것들


📌 🤔 : 아래의 내용들은 이번 장에서 얻을 수 있는 지식들입니다. 이러한 것들을 배운다고 생각하고 챕터를 읽어가 주세요, 다 읽은 이후에 아래의 질문에 대한 답을 답할 수 있으면 완벽합니다.

 

1.프로그래밍의 제어권이라는 것은 무엇을 말하는 걸까요?

2.콜백 지옥이란 뭘까요?

3.추상화란 뭘까요?

02. 콜백 함수 KeyWord


📌 🤔 : 이번 장에서 가장 중요한 키워드입니다. 4장을 읽고 아래의 단어들을 조금 더 이해하는게 오늘의 목표입니다. 천천히 읽어보시고, 각 조원분들과 적당하게 나눠서 아래의 키워드를 직접 설명해주세요.

 

제어권, 콜백함수, 고차함수, 콜백지옥

03. 콜백 함수 Questions


📌 Questions에 대한 답은 팀원분들과 함께 작성해주세요, 내용을 작성하는데 필요한 개념이나 단어들을 모르는 팀원이 없도록 서로 설명해가며 작성해야합니다. 최종적으로 제출한 답변에 있는 개념이나 단어는 모두가 알고 있어야 합니다.

 

(알아 볼 것들의 질문과 같습니다. 이번 장과 다음 장의 핵심은 내용을 이해하는 것 입니다!)

1.프로그래밍의 제어권이라는 것은 무엇을 말하는 걸까요?

2.콜백 지옥이란 뭘까요?

3.추상화란 뭘까요?

04. 콜백 함수 Answers


Question 01.

❓ 1.프로그래밍의 제어권이라는 것은 무엇을 말하는 걸까요?

 

주재훈 :

간단히 말하면, 명령에 대한 제어권을 말하는 것이다.

내가 원하는 호출 시점으로 제어할 것인지

자바스크립트 엔진이 알아서 제어하게 할 것 인지로 나뉠 수 있겠다.

 

Question 02.

❓ 2.콜백 지옥이란 뭘까요?

 

주재훈 :

콜백지옥이란 ?

( 콜백 → 콜백 → 콜백 → … ) 이와 같은 형식으로

체인이 길어지고 함수안에 함수안에 함수 같은 모양이 나오는거다.

콜백지옥의 문제점 ?

첫째 : 읽기가 너무 거북하다 ⇒ 가독성이 떨어지게된다.

둘째 : 체인이 길어져서 에러가 발생하거나 디버깅을 해야 하는 경우 문제 해결이 어렵다.

셋째 : 로직을 한눈에 알아보기 어렵다.

 

Question 03.

❓ 3.추상화란 뭘까요?

 

주재훈 :

복잡한 어떤 것을 압축해서 핵심만 추출한 상태로 만드는 것

 

3. 클로저

클로저를 통해서 배운 것들을 전부 이해하면 좋겠지만, 지금 당장에는 어려울 수 있습니다. 같이 이야기를 나누는 것 보다는, 시간이 남는다면 자바스크립트 심화 강의중 클로저 부분을 다시 보시면 될 것 같습니다. 이해하기 위해서 시간이 필요한 개념이기 때문입니다.

아마 이번 주차에서 배울 개념중 가장 어려운 개념인 만큼 따로 질문에 답하는 시간을 가지지는 않겠습니다. 개개인에 맞게 읽으시고 자유롭게 이야기 나누면 좋을 것 같습니다. 읽어가시는데 더 가이드를 드린다면, 두가지 맥락을 나누어 보시면 좋을 것 같습니다.

1.특정 변수를 참조하는 내부함수를 외부로 전달하는 경우, 해당 실행컨텍스트가 끝나도 가비지 컬렉션에 의해 소멸되지 않는다는 "기계적 측면"

2.특정 조건에서만 참조가 가능한 정보라는 관점에서의 정보 은닉 측면을 나누어서 보면 좋습니다.

즉 어떻게 저런 데이터를 가질 수 있는지, 어떻게 활용하는지 두 가지 관점을 고민해보시면 좋을 것 같습니다.

728x90
반응형