js 문제 해석
3229 단어 js
Function.prototype.curry=function(){
var slice=Array.prototype.slice,
args=slice.apply(arguments),
that=this;
return function(){
console.log(args.concat(slice.apply(arguments)))
return that.apply(null, args.concat(slice.apply(arguments)) );
}
}
function add(a,b){
return a+b;
}
var q=add.curry(10);
q(2)
, :( : 。)
:
Function.prototype.curry=function(){
var slice=Array.prototype.slice,
args=slice.apply(arguments),// , concat
that=this;
return function(){
var param = slice.apply(arguments).concat(args);
console.log(param)
return that.apply(null, param );
}
}
function add(a,b){
return a+b;
}
var q=add.curry(10);
q(2)
분석:
우선 추가합니다.curry(10);,curry는 최종적으로 하나의 function을 되돌려주었고 이 function은 패키지입니다. (내부에서 사용하는 변수 이름은 위add의 변수이기 때문에 인용했지만 변수를 방출하지 않습니다): var slice=Array.prototype.slice;//slice 방법을 사용할 것입니다. 여기에서args=slice를 간략하게 인용합니다.apply(arguments),//add 함수의 매개 변수를 수조로 바꾸어 수조의concat 방법that=this;//add의 인용을 저장합니다.실행 q(2) 내부 실행 과정: var param = slice.apply(arguments).concat(args);분명히 여기 slice와args는 모두add 함수의 인용 (패키지 닫기 사용) 이고,arguments는 q의 매개 변수입니다.의미: q의 매개 변수는 수조의 슬라이스 방법을 호출한 다음에 앞에add를 저장한args 수조와 연결합니다.return that.apply(null, param ); 현재 새 수조[2,10]는 매개 변수로add를 호출하는 방법 (that의 인용) 으로 결과를 되돌려줍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[2022.04.19] 자바스크립트 this - 생성자 함수와 이벤트리스너에서의 this18일에 this에 대해 공부하면서 적었던 일반적인 함수나 객체에서의 this가 아닌 오늘은 이벤트리스너와 생성자 함수 안에서의 this를 살펴보기로 했다. new 키워드를 붙여 함수를 생성자로 사용할 때 this는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.