이 글은 주로 ajax 콜백 함수의 올바른 매개변수 전달 방법을 소개합니다. 이제 특정 참조 값을 가지고 있습니다. 필요한 친구들이 참조할 수 있습니다.
Ajax 콜백 함수의 올바른 매개변수 전달 방법이 많이 있습니다. 친구들은 오류를 쓰는 데 익숙합니다. 좋습니다. 여기에 간략한 요약이 있습니다.
속성 메서드는 매개변수를 사용할 수 있습니다:
function ClassX(name) { this.name = name; ClassX.prototype.show = function (param) { alert(this.name + " " + param); }; } var o = new ClassX("name"); o.show("param");//name param
그러나 참조가 함수 시그니처에 직접 정의되어 있더라도 o.show('param')가 자체적으로 호출되지 않고 다른 함수 콜백을 통해 전달되는 경우 그렇지 않을 수 있습니다. ajax
request.onreadystatechange=function(param){...}
또는
request.onreadystatechange =callBack;function callBack(param)을 사용할 때와 같이 이 메소드를 호출할 때 다른 사람들이 이 매개변수를 전달하지 않을 수 있기 때문입니다. ){...}
는 현재 ajax가 param 매개변수를 전혀 전달하지 않기 때문에 사용하기 쉽지 않습니다. 올바른 방법은 다음과 같습니다.
//request.onreadystatechange = orgEval;//错误作法 //request.onreadystatechange = function (request, pOrgName) {//错误作法 // orgEval(request, pOrgName); //}; //... request.onreadystatechange = function () {//正确作法 orgEval(request, pOrgName);//在匿名函数内调用回调实现,并直接传入参数,这里用到了JavaScript的闭包性质 }; //... function orgEval(req, orgName){ //... }
이 방법은 익명 함수 콜백 구현 함수에서 호출하는 것입니다. , 매개변수를 직접 전달합니다.
ajax는 onreadystatechange의 콜백 함수에 매개변수를 전달합니다
저는 며칠 전부터 ajax를 배우기 시작했는데 테스트 페이지를 만들면서 XMLHttpRequest.onreadystatechange의 콜백 함수에 매개변수를 전달해야 했습니다. 바이두를 검색해보니 이에 대해 이야기하는 사람들이 많다는 것을 알았습니다. 발견된 메소드는 아마도 다음과 같을 것입니다:
xmlHttp.onreadystatechange=function(){callback(a,b);};
여기에는 두 개의 매개변수 a와 b가 전달됩니다.
나중에 제가 직접 발견한 방법을 아시는 분들이 많을 텐데 바이두에서는 찾을 수 없어서 여기에 적어서 홍보해보겠습니다.
xmlHttp.a=a; xmlHttp.b=b; xmlHttp.onreadystatechange=callback; . . function callback() { if(this.readyState==4) { a=this.a; b=this.b; . } }
즉, xmlHttp 객체에 두 개의 속성을 추가하고 이를 콜백 함수에서 직접 호출하는 데 사용합니다.
그리고 제 경험에 대해서도 말씀드리겠습니다. xmlHttp를 전역 변수로 작성하는 것이 가장 좋습니다. 처음에는 일부 요청이 목적을 달성하지 못한 것을 발견했습니다. 나중에 나는 xmlHttp가 함수에 작성되었다는 것을 발견했습니다. 해당 함수의 실행이 끝나면 xmlHttp 수명 주기도 종료되었습니다. 이러한 방식으로 일부 요청은 수명 주기가 끝나기 전에 구현되고 일부 요청은 사라집니다.
위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되었으면 좋겠습니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!
관련 권장 사항:
위 내용은 Ajax 콜백 함수에 매개변수를 전달하는 올바른 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!