누군가가 내게 자바 스크립트에서 무엇을 설명 할 수 있습니까?자바 스크립트에서 전역 가져 오기
(function (x,y){}(x,y));
또는이
// global import
(function ($, YAHOO) {
// now have access to globals jQuery (as $) and YAHOO in this code
}(jQuery, YAHOO));
나는 자바 또는 C++
누군가가 내게 자바 스크립트에서 무엇을 설명 할 수 있습니까?자바 스크립트에서 전역 가져 오기
(function (x,y){}(x,y));
또는이
// global import
(function ($, YAHOO) {
// now have access to globals jQuery (as $) and YAHOO in this code
}(jQuery, YAHOO));
나는 자바 또는 C++
function(x, y) { }
는 anonoymous 함수와 같은 다른 언어로 비슷한 것을 본 적이 없다.
(x, y)
은 매개 변수로 x
및 y
을 전달합니다.
번째 코드 블록의 목적은 가변 빠른 비트를 조회하기 위해 로컬 범위를 가져 YAHOO
(전역 $
를 형성하지 않음)로 제공 $
jQuery
만드는 것이다. 내부 var
에 정의 된 모든 변수는 글로벌 수 없기 때문 게다가
, 그것은 새로운 범위를 만듭니다.
첫 번째 코드 블록들은 예를 들어 새로운 변수를 생성하기 위해 이러한 방식으로 사용 당신은 루프에 콜백의 현재 i
값을 가진 변수를 만들 필요가있을 때 : 그 새 범위없이
for(var i = 0; i < 10; i++) {
(function(i) {
setTimeout(function() {
alert("number " + i);
}, 1000 * i);
})(i);
}
당신은 같은i
매번 때문에 경고가 것 "번호 10"(10) 타임스.
첫 번째 호출은 익명의 함수를 호출합니다. 익명의 함수는 2 개의 인수를 취해 아무것도하지 않으며 x
및 y
을 인수로 사용합니다.
두 번째는 같은 일을한다. 첫 번째 인수 이름으로 $를 사용하고 jQuery를 인수 값으로 전달합니다. 따라서이 함수 내에서 $
을 사용하여 jQuery
객체를 참조 할 수 있습니다. 함수 내에서 변수를 다른 이름으로 앨리어스 (alias)하는 방법입니다.
C 번호는 람다 식라는 유사한 개념을 갖는다.
public static Func<int> Foo()
{
int a = 1,
b = 2;
return() => a + b;
}
은 익명으로 선언되는 일반, 일류 기능 (, 그것은 함수 자체가 그 결과를하지 반환됩니다 최고 수준의 기능에 의해 의미)입니다. 이 경우
, 나는 또한 폐쇄라고 무엇을 보여 - 반환 방법은 푸이 범위를 벗어나면 그들을 유지하기 위해 허용하는 '지역'변수 a와 b를 둘러싸. 많은 언어에서 익명 메소드는 클로저를 구현합니다.익명 방법은 정말 너무 멋지다 - 당신이 벤치 마크 방법으로, 행동 주입을 수행 할 수 있습니다
public static TimeSpan BenchmarkMe(Action timeThis)
{
Stopwatch sw = Stopwatch.StartNew()
timeThis();
sw.Stop;
return sw.Elapsed;
}
당신은에 대한 벤치 마크를 수행 할이 방법으로 시간 범위를 반환하는 익명 함수를 전달할 수 있습니다 그것에 대한 단 하나의 패스. 멋지다, 응?