2011-11-20 7 views
0

File 객체를 프로토 타입 할 수 있습니까? 현재 Firefox 7의 File 객체에 fileName 속성이 없지만 name 속성이있는 문제가 있습니다.File 객체 프로토 타입 작성

내 코드는 fileName에 광범위하게 의존하며 모든 경우를 변경하는 것보다 쉬운 방법을 찾고 싶습니다.

+0

프로토 타입에 추가하려고 했습니까? – Asken

답변

2

이 시도 :

(function(File){ 

    if(!File) { 
    return; 
    } 


    function getFileName(){ 
    return this.name; 
    } 

File.prototype.__defineGetter__("fileName", getFileName); 

})(window.File) 

그것은 프로토 타입이는 File 인스턴스 오브젝트 자체에서 발견되어 있지 않은 경우에보고 만 있기 때문에 fileName이 브라우저에 영향을주지해야한다.

jsfiddle가 : http://jsfiddle.net/Sj3B2/2/은 (파이어 폭스에서 테스트, 크롬, 오페라)

가 편집 오페라는 지원하지 않았기 때문에 Object.defineProperty

1

아마도 File.prototype.fileName 세터와 게터, 그 세트를 생성/이름을 얻을 것이다 당신의 문제를 해결하십시오.

그러나 실제로 작동하는 방식을 모르며 아래 코드가 작동하는지 잘 모릅니다.

if(! ("name" in File.prototype)){ 
    File.prototype.fileName = { 
     get function(){ 
     return this.name; 
     }, 
     set function(val){ 
     this.name = val; 
     } 
    }; 
}