이벤트가 발생할 때 호출되는 함수를 만들었습니다. 내 함수의 직접 호출이 작동하지 않으며 익명의 함수를 사용해야합니다. 왜 그렇게해야합니까? 누군가 그 같은 어리석은 실수를 저지르는 것을 피하기 위해 논리를 설명 할 수 있을까요?함수의 매개 변수로 함수 사용 : 익명 함수를 사용하는 이유는 무엇입니까?
1
A
답변
3
그것은 아무튼
$('#signup-email').change(function(){
checkInBackEnd($('#signup-email'), 'email-unique.php', function(result){
if(result == 1){
$('#signup-error-email').show();
}
else{
$('#signup-error-email').hide();
}
});
);
당신에게 감사 : 함수를 직접 호출
$('#signup-email').change(
checkInBackEnd($('#signup-email'), 'email-unique.php', function(result){
if(result == 1){
$('#signup-error-email').show();
}
else{
$('#signup-error-email').hide();
}
})
);
을 checkInBackEnd 때문에
내가 익명 함수가 변경 함수를 사용하기 때문에 작동 작동하지 않습니다 익명의 기능이 있어야합니다. 이름이 지정된 함수를 정의 할 수 있습니다 :
function doCheckIn() {
checkInBackEnd($('#signup-email'), 'email-unique.php', function(result){
if(result == 1){
$('#signup-error-email').show();
}
else{
$('#signup-error-email').hide();
}
}
을 다음 콜백 인수로 되었 이러한 콜백 함수가 아니라 한 곳에서 필요하기 때문에
$('#signup-email').change(doCheckIn);
우리는 일반적으로 익명 함수를 사용합니다. 한 번만 사용하면 이름을 지정할 필요가 없습니다. 잠시 후에 당신은이 관용구에 익숙해 질 것입니다.
하지만 중요한 점은 이벤트 바인딩 함수에 대한 인수가 함수 여야한다는 것입니다. 이 함수는 이벤트가 트리거 될 때까지 호출되어서는 안됩니다. .change()
에 함수 호출을 넣으면 함수는 나중에는 아니고 이벤트 바인딩을 설정할 때 호출됩니다.
0
는 더 잘 이해하기 위해 코드를 브레이크
:`checkInBackEnd은 ($이 (...))`함수 호출 때문에 발생
function fakeChangeFunction(myFn) {
val result = myFn(); // We expect to have a function
doSomethingWithResult(result);
}
function myChangeFunctionExample() {
alert('foobar');
// returns undefined implicitly
}
// Doesn't work
fakeChangeFunction(myChangeFunctionExample()); // This will cause an error
// Works
fakeChangeFunction(myChangeFunctionExample); // Notice no parenthasis
// Works
fakeChangeFunction(function() {
myChangeFunctionExample();
});
// Works
function returnsAFunction() {
return function() {
alert('barfoo');
};
}
fakeChangeFunction(returnsAFunction());
관련 문제
- 1. JavaScript : 익명 함수를 함수 매개 변수로 전달하는 방법은 무엇입니까?
- 2. 함수를 매개 변수로 사용하는 경우
- 3. 다른 익명의 함수를 사용하는 익명 함수
- 4. 익명 함수를 나중에 사용할 매개 변수로 전달
- 5. 자바 스크립트 : 익명 함수를 사용하는 이유는 무엇입니까?
- 6. 익명 객체를 반환하는 매개 변수로 함수
- 7. JavaScript 익명 함수를 WebView에 매개 변수로 전달
- 8. 함수 멤버 포인터를 함수의 매개 변수로 전달
- 9. 로그를 r에있는 함수의 매개 변수로 사용
- 10. 구조체를 함수의 매개 변수로 사용
- 11. 속성을 매개 변수로 사용하는 일반 함수
- 12. qsort 함수의 매개 변수로 함수 포인터
- 13. 함수 이름을 다른 함수의 매개 변수로 전달
- 14. C 번호 - 매개 변수로 익명 함수를 전달
- 15. 함수 참조를 매개 변수로 사용하는 대신 익명 함수를 사용하는 것이 더 나은 방법으로 간주되는 이유는 무엇입니까? 이처럼
- 16. js에서 함수 이름과 매개 변수로 글자를 사용하는 이유는 무엇입니까?
- 17. char 배열을 매개 변수로 사용하는 함수
- 18. 매개 변수가있는 다른 함수의 매개 변수로 함수를 호출하는 방법은 무엇입니까?
- 19. 함수 템플릿을 매개 변수로 사용
- 20. 재귀 함수의 매개 변수로 Ref/Out 사용
- 21. 함수를 다른 함수의 매개 변수로 사용하기
- 22. C++ : 함수를 다른 함수의 매개 변수로 전달
- 23. 배열을 함수 매개 변수로 사용
- 24. 비동기 함수를 다른 함수의 기본 매개 변수로 사용하는 방법
- 25. 배열을 함수 매개 변수로 사용
- 26. 몇 가지 매개 변수를 사용하는 익명 함수 사용
- 27. 익명 함수 내에서 익명 함수를 반환하는 JavaScript
- 28. 함수를 매개 변수로 전달하는 방법은 무엇입니까?
- 29. TIdSync 익명 함수 사용
- 30. Lambda \ Anonymous 매개 변수로 함수 사용
을 : 먼저 간단한 예를 살펴 수 있습니다. _a 참조가 예상되면 함수를 호출하면 안됩니다. 또는 호출 할 함수가 함수 참조 (또는 익명 함수)를 반환하는지 조심하십시오. – Teemu
내가 이해하는 한, 함수의 매개 변수에서 직접 함수를 호출 할 수는 없습니까? 항상 익명의 함수를 사용해야합니다. – DescampsAu
우리는 할 수 있으면, 그 특정 매개 변수가 원래 호출 된 함수에서 사용되는 방법에 의존합니다. – Teemu