donaricano-btn

 한번만 실행되는 함수 _.once()


1. _.once()

- 고차함수로 함수를 한 번만 실행 시킨다

1) 구현


블로그 이미지

리딩리드

,
donaricano-btn

_.identity(), _.values() 구현


1. _,identity()

- 쓸모없어 보이는 함수

- 받은 파라미터를 바로 반환 한다.

- 단독 사용에 의미가 없지만 여러 함수들과 합쳐져 의미를 만든다.

1) 구현



2. _.values()

- 객체의 값만을 array 형태로 출력한다.

- _,map(), _.identity() 가 사용되었다

1) 구현

 


3. _.keys()

- values의 반대로 객체의 키 값만을 배열로 출력한다

1) 구현

 

블로그 이미지

리딩리드

,
donaricano-btn

_,map(), getLength(), isArrayLike() 구현


1. getLength()

- data.length 값을 측정할 때 'length' of undefined 라는 오류를 피할 수 있다.

1) 일반적인 상황 에러


- 주석과 같은 아래 발생

2) getLength() 함수 적용

 

- false를 반환 하므로 for문이 동작하지 않는다.


2. isArrayLike()

- 자바스크립트의 객체는 4가지가 있다. [], {}, arguments, ArrayLike 

 

- ArrayLike 를 판단한다

 


3. _.map()

- underscore.js 의 map()를 구현한다.

 

- array 계열인지 object 계열인지 판별하여 for 혹은 for in 을 구현한다.

블로그 이미지

리딩리드

,
donaricano-btn

함수형에서 for 와 if 의 변화


1. for에서 filter로 if에서 predicate로

1) 기존 문장


2) filter 함수로 변환

 

- 새로운 배열을 생성하여 반환한다.

- predicate 함수를 이용하여 원하는 반환 값을 얻는다.


2. 중복 코드를 map 함수로 제거한다

1) 기존 문장

 

- 새로 만든 배열에서 이름을 추출한다.

2) map 함수로 변환

 

- 코드가 더욱 단순해 졌다. 또한 함수를 합쳐서 실행결과로 바로 실행할 수 있다.


3. 클로저를 이용한 map 함수 줄이기

1) 클로저 함수 패턴

 

2) filter, map, bvalue 

 

- 더욱 간결해 졌다.

블로그 이미지

리딩리드

,