혼자 jquery를 배우던 중, 영어단어(콜백)를 보고 갑자기 등줄기에 식은땀이 났습니다. 빠른 구글링 후에 원래 중국어 번역이 콜백이라는 것을 알았습니다. 그것이 바로 콜백 함수입니다. 이해가 안 가서 콜백 기능을 검색해 보니 인터넷에 있는 중국어 설명이 너무 '난해하다'는 걸 발견하고 제가 지식이 별로 없다는 걸 인정했습니다. 몇 가지 콜백 예제를 읽어보니 조금 이해가 된 것 같습니다. 다음은 콜백 함수에 대한 나의 이해입니다. 잘못 이해했다면 정정해 주시기 바랍니다. Q 우선 jQuery 홈페이지에서 영어 정의부터 시작했는데, 중국인으로서 참으로 비극적인 느낌이 듭니다. 콜백의 정의는 국내 '전문가'들이 설명하는데요. 그냥 맴돌기만 하면 전문가인 것 같습니다. 떠다니는 구름, 모든 것이 떠다니는 구름이다.
콜백은 다른 함수에 인수로 전달되어 상위 함수가 완료된 후 실행되는 함수입니다.
이것은 js에서의 설명이며 다른 언어에서는 언급하지 않았습니다.
말 그대로 이해하면 콜백은 함수를 호출하는 프로세스입니다. 그럼 이 호출 프로세스를 이해하는 것부터 시작해 보겠습니다. 함수 a에는 함수 b라는 하나의 매개변수가 있습니다. 함수 a가 실행되면 함수 b가 실행됩니다. 그런 다음 이 프로세스를 콜백이라고 합니다.
사실 중국어도 이해하기 쉽습니다. 콜백, 콜백은 콜백을 의미합니다. 함수 a를 미리 완료하고 나중에 함수 b를 호출하세요.
실제 예: 데이트 후 여자친구를 집에 보낼 때 작별 인사를 할 때 반드시 "집에 도착하면 메시지를 보내주세요. 걱정됩니다."라고 말할 것입니다. 여자친구가 내가 사실 나중에 너한테 메시지를 보냈다고 답장할 거야. 얘야, 너에겐 기회가 있어.
사실 이는 콜백 과정입니다. 함수 b(여자친구에게 메시지를 보내달라고 요청하는 것)를 여자친구에게 맡기고, 여자친구가 집에 가는 행위는 함수a입니다. 그녀는 먼저 집으로 돌아와 함수 a의 내용을 실행한 다음 함수 b를 실행해야 합니다. 그러면 메시지를 받게 됩니다.
여기서 한 가지 분명히 해야 할 점은 함수 b가 매개변수 형태로 함수 a에 전달된 다음 함수 b를 콜백 함수라고 한다는 것입니다.
누군가 질문이 있을 수도 있습니다. 매개변수 형식으로 전달해야 하나요? 함수 a에서 함수 b를 직접 호출할 수는 없나요? 실제로 그럴 수 있습니다. 해결.
60154e6d639ffb042975b9e551ed27a3
이해의 예: <html>
<head>
<title>回调函数(callback)</title>
<script language="javascript" type="text/javascript">
function a(callback)
{
alert("我是parent函数a!");
alert("调用回调函数");
callback();
}
function b(){
alert("我是回调函数b");
}
function c(){
alert("我是回调函数c");
}
function test()
{
a(b);
a(c);
}
</script>
</head>
<body>
<h1>学习js回调函数</h1>
<button onClick=test()>click me</button>
<p>应该能看到调用了两个回调函数</p>
</body>
</html>
누구나 콜백 함수를 사용할 수 있지만 Jquery가 이를 캡슐화한 후에는 콜백 함수의 실제 사용법을 모든 사람이 이해할 수는 없습니다.
JS Api는 이를 다음과 같이 설명합니다. 콜백은 다른 함수에 인수로 전달되고 상위 함수가 완료된 후에 실행되는 함수입니다.
물론 JS에서 콜백 함수의 마법을 실제로 시험해 볼 수 있습니다.
함수 a에서 직접 호출하면 이 콜백 함수가 제한됩니다. 그러나 함수를 매개변수로 사용하면 다음과 같은 이점이 있습니다. a(b)를 수행하면 함수 b가 콜백 함수가 되고, a(c)도 수행할 수 있으면 함수 c는 콜백 함수가 됩니다. 함수 a(){...;b();}를 작성하면 변수의 유연성이 상실됩니다. 코드는 다음과 같습니다:
<!DOCTYPE HTML> <html> <head> <meta charset="GBK" /> <title>回调函数(callback)</title> <script type="text/javascript" src="http://cdn.bootcss.com/jquery/1.9.0/jquery.min.js"></script> <script language="javascript" type="text/javascript"> var f; function d(){ alert("我是Jquery定义的函数d"); } var e = function(){ alert("我也是Jquery定义的函数e"); } function a(callback) { alert("我是parent函数a!"); d(); if (typeof callback === "function"){ //alert(callback); callback(); } } function b(){ alert("我是回调函数b"); d(); e(); f(); } function c(){ alert("我是回调函数c"); d(); e(); f(); } function test1() { a(b); } function test2() { a(c); } $(function(){ f = function(){ alert("我是回调函数f"); } }); </script> </head> <body > <h1>学习js回调函数</h1> <button onClick=test1()>test a(b)</button> <button onClick=test2()>test a(c)</button> <p>应该能看到调用了两个回调函数</p> <p > </p> </body> </html>
위 내용은 jquery에서 콜백함수(callback)를 사용하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!