2013-01-14 5 views

답변

1

이 경우 c은 두 개의 객체, ab을 전달할 수있는 함수입니다. 정의에서 보면 a이 함수 객체이고 그 함수에 대한 파라미터가 b 인 것으로 보입니다.

정의 내에서 a이라는 함수에 b이라는 인수가 전달됩니다.

functions in javascript에 대해 자세히 알아보십시오.

+0

고마워, 그 대신에 이것을 사용하면 어떤 이점이 있습니까? var c = function (b) { function a (b) {}; }; – swayziak

+0

원래 예제의 장점은 함수 객체를'c'로 전달할 수 있다는 것입니다. 주석의 예제에서 실행될 수있는 유일한 함수는'c'의 함수 정의 안에 정의 된 함수입니다. 하나는 다른 것보다 좋지 않으며, 유스 케이스에 달려있다. – timc

1

이것은 a이 다른 인수와 함께 c으로 전달 될 때 실행되는 함수 여야한다는 것을 의미합니다.

An example of usage:

//c accepts a function and an argument 
c(function(theSentB){ 
    //this passed function gets executed due to a(b); 
    //and 'hello' is passed to it 

    alert(theSentB); 

},'hello') 
2

우리는 형태 f(x)의 표현이 하나의 인자 x을 복용하는 기능 f를 호출하는 것을 알고있다. 또한 JS를 사용하면 다른 함수에 매개 변수로 함수 콜백을 전달할 수 있습니다. 예를 들어 :

function callback(x) { alert(x); } 

c(callback, 5); 

콜백는 하나의 인수를 받아, 다른 인수 5는 콜백 매개 변수로 전달됩니다. 차례대로 번호에 경고합니다.

+0

이것은 JavaScript의 취약한 유형 시스템과 어떤 관련이 있습니까? – phant0m

+0

@ phant0m 우리는 실제로 매개 변수의 유형을 알 수 없기 때문에. C++과 같이 엄격하게 유형화 된 언어와 달리 함수 포인터 (콜백)를 제외한 모든 것을 전달할 수 있습니다. – 0x499602D2

+0

당신은 JavaScript로 정의한 기능이든 아니든 상관없이 모든 함수와 인수에 대해이 인수를 사용할 수 있습니다. 그것이 내가 이해하지 못하는 부분입니다. – phant0m

1

JavaScript는 함수를 첫 번째 클래스 객체로 취급합니다. 즉, 함수를 매개 변수로 전달할 수 있습니다. (그것은 C#에서 델리게이트와 비슷합니다)

이 경우 a은 함수를 가리키는 매개 변수이며 c로 표시되는 함수 내에서 실행합니다. (a 자체, 첫 번째 인수로 b 사용).

관련 문제