>웹 프론트엔드 >JS 튜토리얼 >javascript 함수형 프로그래밍_javascript 기술에 대한 간략한 토론

javascript 함수형 프로그래밍_javascript 기술에 대한 간략한 토론

WBOY
WBOY원래의
2016-05-16 15:40:39991검색

함수형 프로그래밍은 프로그래밍 패러다임이다

1 함수는 첫 번째 시민입니다, 값을 반환하거나 다른 함수의 매개변수로 사용할 수 있습니다

//console是一个函数
function con(v){
 console.log(v)
}
// execute 也是一个函数
function execute(fn){
 fn(1)
}
//将con函数作为参数传进execute函数
execute(con) // 1

2 자연어에 가까운 글쓰기 방법

샤오치는 식사를 마치고 목욕하러 갔습니다. eat().bathe()

라고 표현하면 됩니다.
// 吃饭函数
function eat(eat){
 this.e = eat;
 return this;
}
// 洗澡函数
function bathe(bathe){
 this.b = bathe;
 return this;
}

var person = eat("晓池在吃饭").bathe("晓池去洗澡了");
console.log(person.e) // 晓池在吃饭
console.log(person.b) // 晓池去洗澡了

함수형 프로그래밍의 3가지 특징

익명 함수, 즉 이름이 없는 함수는 함수형 프로그래밍에서 매우 일반적입니다. 때로는 일부 함수를 완성하기 위해 해당 함수(재사용되지 않는 함수)를 사용해야 하는 경우가 있습니다. 각 함수를 정의하여 이에 대해 알아 보겠습니다.

// 自定义each函数
function each(arr,func){
 var length = arr.length;
 for(var i = 0 ;i <length; i++){
  func(i,arr[i])
 }
}
// 执行each函数,传进一个匿名函数作为该函数的参数
each([1,2,3],function(i,v){
 console.log('key:' + i + ',value:' +v);
});
//输出内容
//key:0,value:1
//key:1,value:2
//key:2,value:3

커링(Currying): 커링은 여러 매개변수를 받는 함수를 단일 매개변수(원래 함수의 첫 번째 매개변수)를 받는 함수로 변환하고, 나머지 매개변수를 받아 결과를 반환하는 새로운 함수를 반환하는 기술이다.

//定义add函数,并返回一个函数
function add(num){
 return function(x){
   return num + x;
 }
}
add1 = add(1)
console.log(add1(3)) // 4

고차 함수: 매개변수로 함수가 있거나 함수가 내부적으로 함수를 반환하는 경우 해당 함수를 고차 함수라고 할 수 있습니다. 위의 각 함수는 일종의 고차 함수로 간주됩니다.

결론

실제 응용에서는 함수형이나 객체지향에 국한되지 않고 대개 이 둘이 혼합되어 있습니다. 실제로 많은 주류 객체지향 언어는 일부 기능을 추가하는 등 끊임없이 자체적으로 개선되고 있습니다. 잠깐, JavaScript에서는 코드가 매우 간단하고 아름다울 뿐만 아니라 디버깅도 더 쉽습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.