티스토리 뷰
다형성
- map, filter등은 함수가 아니라, 객체의 메소드이다.
- 메소드는 해당클래스의 인스턴스에서만 작동 (map,filter는 array 에서만 작동)
- jquery 객체 => array like 객체 , array가 아니라 map과 filter를 쓰지 못함.
function _map(list,mapper){
var new_list=[];
for(var i=0;i<list.length;i++){
if(predi(list[i])){
new_list.push(mapper(list[i]);
}
}
return new_list;
}
[1,2,3,4].map(function(val){
return val*2;
})
- 첫번째와 두번쨰 map의 차이는 첫번째는 함수를 기준으로 짜여진 코드이고,
따라서 아래와 같이 사용가능(array가 아니더라도!)
_map(document.querySelectorAll('*'),function(node){
return node.nodeName;
})
- 두번째는 데이터를 기준으로 짜여진 코드이다.(데이터가 있어야 기능을 수행할수있다.=>객체지향적)
응용형 함수,고차함수들은 두번째 보조함수 안에서 자유롭게 수정이 가능하므로, 데이터면에서 자유롭고, 다형성인면이 있음! (_map, _filter)
'Programming Skills > 함수형 프로그래밍' 카테고리의 다른 글
함수형 프로그래밍- reduce함수 (0) | 2018.02.27 |
---|---|
함수형프로그래밍-커링 (0) | 2018.02.07 |
함수형프로그래밍-map,filter (0) | 2018.02.01 |
함수형 프로그래밍-요즘개발이야기,함수형 프로그래밍정의 (0) | 2018.01.31 |
함수형프로그래밍-일급함수, add_maker,함수로 함수 실행하기 (0) | 2018.01.31 |