是否可以創建File對象的原型?我目前遇到的問題是,Firefox 7+中的File對象不再具有fileName
屬性,而是name
屬性。原型化文件對象
我的代碼廣泛地依賴於fileName
,我想找到比改變所有事件更簡單的方法。
是否可以創建File對象的原型?我目前遇到的問題是,Firefox 7+中的File對象不再具有fileName
屬性,而是name
屬性。原型化文件對象
我的代碼廣泛地依賴於fileName
,我想找到比改變所有事件更簡單的方法。
試試這個:
(function(File){
if(!File) {
return;
}
function getFileName(){
return this.name;
}
File.prototype.__defineGetter__("fileName", getFileName);
})(window.File)
應該對有fileName
,因爲原型是隻能看着,如果它不是在一個File
實例對象本身發現瀏覽器沒有任何影響。
的jsfiddle:http://jsfiddle.net/Sj3B2/2/(在Firefox測試,Chrome和Opera)
編輯,因爲歌劇不支持Object.defineProperty
也許創造File.prototype.fileName setter和getter,即設置/獲取名稱,將解決你的問題。
但是,我真的不知道它是如何工作的,我不知道下面的代碼是否工作。
if(! ("name" in File.prototype)){
File.prototype.fileName = {
get function(){
return this.name;
},
set function(val){
this.name = val;
}
};
}
你試過把它加到原型中嗎? – Asken