티스토리 뷰

다형성


  • 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)

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함