나는이 그림과 같이 두 가지 방법으로 객체 :에 아약스 - 자바 스크립트만을
function PendingRequests(){
this.count;
this.id = [];
this.event = [];
}
PendingRequests.prototype.get = function(){
var request_parameter = 'cont=pr';
Ajax(url,request_parameter,this.get2);
}
PendingRequests.prototype.get2 = function(pr){
this.count = pr.length;
for(var i=0;i<this.count;i++){
this.id[i] = pr[i]['id'];
this.event[i] = pr[i]['event'];
}
}
var pendingrequests = new PendingRequests();
및
Ajax(url,parameter,funct){...}
가 응답을받은 후 전달 된 호출 아약스 기능 함수
funct(JSON.parse(XMLHttpRequestObject.responseText));
스크립트는 호출 할 때까지 실행됩니다. 방법은 아약스 응답 후,하지만 그때 나는 "this.id 정의되지 않은"오류가 발생
도와주세요.
당신은 그렇지 않으면 글로벌 컨텍스트에서 호출되는 함수에 대한 컨텍스트를 지정해야합니다
프로토 타입에 포함 된'pendingrequests' 객체가 아닌 함수에 대한 참조를 전달하는 것입니다 (프로토 타입 체인에있는 것이지만, 참조 할 때 아무 의미가 없습니다). – Ian
당신이 원하지 않을 수도 있지만, 이것이 구조체가 될 것이라는 것을 안다면 (예를 들어'Ajax'는 항상'PendingRequests' 객체 만 처리합니다),'this.get2 '대신에'this'를 전달하기를 원할 수 있습니다 '를 호출하고,'Ajax' 메쏘드에서'funct' 대신'funct.get2'를 호출하십시오 – Ian