2014-04-11 4 views
1

나는 누군가의 자바 스크립트 코드를 읽고 있는데, 여기서 뭘 하려는지 이해하는데 어려움이있다.console.log에서 함수를 실행 하시겠습니까?

var add3 = add(3); 
var add4 = add(4); 

console.log(add3(4)); 

사람이 여기 console.log() 내부에서 무슨 일이 진행되고 있는지 설명 할 수 있습니까?

add3 값을 취한 console.log이 자동으로 정수 4에 추가됩니까?

덕분

+2

add()의 정의는 무엇입니까? 함수를 반환하는 함수 여야합니다. 그런데 언어 태그를 추가해야합니다. 어쩌면이 자바 스크립트 무엇입니까? – ymonad

+1

'add3 (4)'의 결과에 대해서'console.log'를 호출하고 있습니다. – user2357112

답변

0

window.console입니다. 일반적으로 F12 키를 누른 다음 "콘솔"탭을 클릭하여 볼 수 있습니다. alert을 대신 할 수 있지만 JavaScript를 직접 작성한 다음 "실행"을 클릭하거나 한 줄의 명령 상자 인 경우 Enter 키를 누릅니다. 파일을 파일에 저장하고 저장하고 새로 고치고 결과를 확인하는 것보다 훨씬 쉽습니다.

추가 기능에 대해 알지 못하지만, 이는 currying의 예를 보여주는 것 같습니다. 그래서 그 대신 말의 :

function add(x){ 
    return function(y){ 
     return x + y; 
    } 
} 

그런 다음 당신이 할 수 있습니다 :

function add(x, y){ 
    return x + y; 
} 

을 당신은 쓰기

var add3 = add(3); //returns a function that will add 3 to anything 
console.log(add3(4)); //returns 7. 
console.log(add(3)(4)); //also returns 7. 

이 그것을 할 수있는 어리석은 방법처럼 보이지만 생성하는 방법 즉시 작동합니다. 첫 번째 예제에 add(3)을 입력하면 콘솔에서 "y가 정의되지 않았습니다."라는 메시지가 나옵니다. 카 트리트 예제 인 var add3 = add(3)을 사용하는 것은 "글쎄, 내가 3을 더하고 싶지 않다는 것을 알기 때문에 add3은 3을 추가하는 또 다른 함수가 될 것입니다."

1

console.log 콘솔에 인수를 출력한다. 이 함수의 호출 (add3(4))은 4 인수로 add3 함수를 호출하는 함수 호출입니다.

add3add에 의해 생성되는 함수입니다.

기능 add이 (아마도) 아이크 보이는 : 귀하의 브라우저가 다운로드 및 구문 분석 한 문서에 대한 피드백을 제공하는 방법을

function add(n) { 
    return function(x) { 
     return n + x; 
    } 
} 
관련 문제