반응형
콜백을 매개 변수로 다른 함수에 전달하는 방법
나는 ajax 및 콜백 함수를 처음 사용합니다. 개념이 모두 잘못되면 용서해주십시오.
문제점 : 콜백 을 실행할 다른 함수에 매개 변수로 콜백 함수를 보낼 수 있습니까?
function firstFunction(){
//some code
//a callback function is written for $.post() to execute
secondFunction("var1","var2",callbackfunction);
}
function secondFunction(var1, var2, callbackfunction) {
params={}
if (event != null) params = event + '&' + $(form).serialize();
// $.post() will execute the callback function
$.post(form.action,params, callbackfunction);
}
예. 함수 참조는 다른 객체 참조와 마찬가지로 마음의 내용으로 전달할 수 있습니다.
다음은 더 구체적인 예입니다.
function foo() {
console.log("Hello from foo!");
}
function caller(f) {
// Call the given function
f();
}
function indirectCaller(f) {
// Call `caller`, who will in turn call `f`
caller(f);
}
// Do it
indirectCaller(foo); // alerts "Hello from foo!"
다음에 대한 인수를 전달할 수도 있습니다 foo
.
function foo(a, b) {
console.log(a + " + " + b + " = " + (a + b));
}
function caller(f, v1, v2) {
// Call the given function
f(v1, v2);
}
function indirectCaller(f, v1, v2) {
// Call `caller`, who will in turn call `f`
caller(f, v1, v2);
}
// Do it
indirectCaller(foo, 1, 2); // alerts "1 + 2 = 3"
또한 다음과 같이 간단 할 수 있습니다.
if( typeof foo == "function" )
foo();
Google을 검색 javascript callback function example
하면 JavaScript에서 콜백 함수를 더 잘 이해할 수 있습니다.
콜백 함수를 수행하는 방법은 다음과 같습니다.
function f() {
alert('f was called!');
}
function callFunction(func) {
func();
}
callFunction(f);
예, 물론 함수는 객체이고 전달할 수 있지만 물론 선언해야합니다.
function firstFunction(){
//some code
var callbackfunction = function(data){
//do something with the data returned from the ajax request
}
//a callback function is written for $.post() to execute
secondFunction("var1","var2",callbackfunction);
}
an interesting thing is that your callback function has also access to every variable you might have declared inside firstFunction() (variables in javascript have local scope).
Example for CoffeeScript
:
test = (str, callback) ->
data = "Input values"
$.ajax
type: "post"
url: "http://www.mydomain.com/ajaxscript"
data: data
success: callback
test (data, textStatus, xhr) ->
alert data + "\t" + textStatus
반응형
'programing tip' 카테고리의 다른 글
Git 및 Mercurial을 사용한 부분 복제 (0) | 2020.10.24 |
---|---|
Vim에서 자동 접기를 활성화하려면 어떻게해야합니까? (0) | 2020.10.24 |
Python에서 YAML 파일을 구문 분석하고 데이터에 액세스합니까? (0) | 2020.10.24 |
Int를 C #의 Generic Enum으로 캐스팅 (0) | 2020.10.24 |
JSHint "엄격한 위반 가능성이 있습니다." (0) | 2020.10.24 |