는 그래서이 오늘처럼 뭔가를 보이는이
첫 번째 예제에 개인 기능은 루프 범위에 대한 그 안에$$('input').each(// do something);
, 그것 때문에 다른 곳에서는 참조 할 수 없기 때문에 어떤 이점이 있습니까?
는 그래서이 오늘처럼 뭔가를 보이는이
첫 번째 예제에 개인 기능은 루프 범위에 대한 그 안에$$('input').each(// do something);
, 그것 때문에 다른 곳에서는 참조 할 수 없기 때문에 어떤 이점이 있습니까?
익명 함수는 현재 범위와 변수를 알고 있습니다. foo
가 그 범위 내에서 정의되어 있기 때문에
function a() {
var foo = 'test';
$('something').each(function() {
alert(foo);
})
}
이 기능은 '시험'을 경고합니다.
function a() {
var foo = 'test';
$('something').each(b)
}
function b() {
alert(foo);
}
이 기능은 변수 foo
이 정의되지 없다는 자바 스크립트 오류가 발생합니다.
정확한 범위 내에서만 의미가 있고 많은 변수를 던지거나 많은 것을 다시 계산하지 않으려는 함수를 정의해야하는 경우 익명 함수를 정의하는 것이 더 편합니다.
첫 번째 기능은 비공개가 아닙니다. 자바 스크립트는 렉시 컬 스코핑을 가지고 있기 때문에 포함 된 스코프의 모든 변수를 참조하여 클로저를 형성 할 수 있습니다.
두 번째 함수는 함수 이름을 제공하거나 구문 오류가 발생한다는 것을 제외하고는 거의 동일한 것입니다.
짧은 답변 : 함수 문을 두 개 이상 또는 한 가지만 수행하고 매개 변수를 제공하기 위해 함수 문을 넣습니다.
그래서이 함수는 $ (a) .each (function (c) {// c와 함께 뭔가}와 같은 더 많은 매개 변수를 전달할 수 있습니다. 나는 어디에도 다른 방식으로는 할 수 없었다. Ahhhh, 덕분에 – Churk
이것은 개인 기능이 아니며 단지 익명의 기능입니다 (이름이없는 기능).
$('input').each(function() {
// do something
});
을 또는 당신은 할 수 :
당신은 할 수
function foo() {
// do something
}
$('input').each(foo);
어쨌든, .each
방법은 콜백 인 매개 변수로 함수를 필요로한다.
.each 내가 예제로 골랐다지만, 당신 말이 맞아요,. each() 콜백이지만 비 콜백 iterating 기능이 보인다. – Churk
... 괄호 안에 임의의 JavaScript를 포함 할 수 없기 때문에 함수 리터럴을 사용하지 않으면 구문 오류가 발생합니다. – Ryan
당신은 외부 함수를 정의하여 각각에 다음과 같이 전달할 수 있습니다 :'function foo() {alert ('foo!')}; $ ('. input') each (foo); 또는 첫 번째 예제에서와 같이 익명의 함수를 만들고 전달할 수 있습니다 : $ ('. input'). each (function() {alert 'foo!')}); ' – rcplusplus
@minitech, 그래서 당신이 말하는 것은 내가 이런 것을 가질 수 있다는 것입니까? $ (something) .each (a = b; c = d; e = f); – Churk