2012-02-05 5 views
0

현재 자바 스크립트에서 resourcemanager를 쓰려고합니다.이벤트 핸들러 오버로드가있는 객체

ResourceManager = function(){}; 
ResourceManager.prototype = function(){ 

var imageList = new Array(), 

    addImage = function(imageUrl){ 
     imageList.push(imageUrl); 
    }, 
    loadImages = function(){ 
     //Do stuff for loading here 
     onComplete(); 
    }, 
    onComplete = function(){ 
     alert('finished'); 
    }; 

    return { 
     addImage: addImage, 
     loadImages: loadImages, 
     onComplete: onComplete 
    } 
}(); 

가 그럼 난

var rsmgr = new ResourceManager(); 
rsmgr.onComplete = function(){ 
alert('completed'); 
}; 
rsmgr.addImage('image.png'); 
rsmgr.loadImages(); 

당신을 아래로 사용하려는 :가 추가 된 후에는 모든 이미지를 미리로드이 매니저에 이미지 리소스를 추가하는 방법, 하나, 하나를 가지고 on jsfiddle

이제이 과부하가 작동하지 않습니다. 왜 이런 일이 발생합니까? 프로토 타입 제작과 관련이 있다고 생각하지만이 문제를 해결하는 방법을 파악할 수는 없습니다.

+0

jsFiddle 메인 사이트에 연결했는데 작동하는 코드가 없습니다. –

+0

공지를 보내 주셔서 감사합니다. 이제 적절한 페이지로 연결되었습니다. –

답변

0

나는 프로토 타입에 전문가는 아니지만, 그래서 난 그냥 잘 작동 "순수 기능"접근하여 다른 방법을 제안 할 수 있지만 작동하지 않는 이유는 유효한 응답 드릴 수 없습니다 :

function ResourceManager() { 
    this.imageList = new Array(); 

    this.addImage = function(imageUrl) { 
     this.imageList.push(imageUrl); 
    }; 

    this.loadImages = function() { 
     //Do stuff for loading here 
     this.onComplete(); 
    }; 

    this.onComplete = function() { 
     alert('finished'); 
    }; 
}; 

이 기록 된 데를 위와 같이 원래의 재정의 코드가 작동하도록하십시오 - updated fiddle.
(rsmgr.onComplete 무시를 제거하면 예상대로 완료됩니다.)