본문 바로가기
2. 우당탕탕 개발자/2-1. 공부기록

03Dec2019 TIL

by Little Monkey 2019. 12. 4.
반응형

Today I learned :

  • arrow function vs ES5 function
  • .call() / .apply()
  • .bind()
  • Array-like Object (nodes / els / arguments) 
    => Plus, How I can change array-like Object into Array for using array methods! : Array.from()

 

오늘 개념 없는 회사 기사 놈 때문에 열 받은 마음이 쉽게 가라앉지 않아,

맥주 두캔 벌컥 마시고 자리에 차분히 앉아 어제 이해하지 못한 채 남겨둔 것을 공부했다.

 

 .call() 과  .apply() 호출 매소드의 효용과 this를 이해하는 것이 관건이었다. 

let monkey = {
  name : 'Kiki',
  callName : function () {
 	console.log(`Hi ${this.name}`);
    }
 };
 
 let monkey2 = {
   name : 'Boba'
 };
 
 monkey.callName();					// 'Hi Kiki'
 monkey.callName.call(monkey2);				// 'Hi Boba'

 

monkey2 객체에 굳이 다음과 같은 코드를 입력하지 않고도,

 

monkey2.callName = function () {console.log(`Hi ${this.name}`)}

 

 .call() .apply() 메소드의 this에 내가 원하는 객체 이름을 넣으면, 간단하게 'Hi Boba'를 얻어낼 수 있는 것이다. 

즉, 해당 메소드는 함수의 this 를 조작하여 기존의 함수를 재활용할 수 있는 유용한 기능이었다!

 

 

 

 .bind() 는 앞선 호출 매소드처럼 this를 조작하지만, 함수를 호출하진 않는다. 

 

let result = monkey.callName.bind(monkey2);		//함수를 실행시키진 않는다.
result(); 		// 'Hi Boba'

 

 

 

아 슬슬, 그동안 배웠던 것을 블로그에 노트 필기 했던 것 처럼 정리해야하는데,

넘나 귀찮고 시간이 많이 걸리는 것... 일주일에 요일을 지정해 강제로 정리해야겠다. 더 쌓이기 전에!

아날로그적 인간이라 노트 필기를 해가며 자주 보는게 더 익숙하긴 한데,

이렇게 또 블로그에 예쁘게 보여주는 기능이 있어 이 공간에 자주 정리해줘야겠다는 생각도 듬...

 

 

반응형

'2. 우당탕탕 개발자 > 2-1. 공부기록' 카테고리의 다른 글

07Dec2019 TIL  (0) 2019.12.07
06Dec2019 TIL  (0) 2019.12.07
02Dec2019 TIL  (0) 2019.12.03
01Dec2019 TIL  (0) 2019.12.02
30Nov2019 TIL  (0) 2019.12.01

댓글