Javascript 创建文件对象的原型
是否可以对文件对象进行原型化?我目前的问题是Firefox7+中的文件对象不再具有Javascript 创建文件对象的原型,javascript,cross-browser,Javascript,Cross Browser,是否可以对文件对象进行原型化?我目前的问题是Firefox7+中的文件对象不再具有fileName属性,而是具有name属性 我的代码在很大程度上依赖于文件名,我想找到一种比更改所有事件更简单的方法。尝试以下方法: (function(File){ if( !File ) { return; } function getFileName(){ return this.name; } File.prototype.__defineGette
fileName
属性,而是具有name
属性
我的代码在很大程度上依赖于文件名
,我想找到一种比更改所有事件更简单的方法。尝试以下方法:
(function(File){
if( !File ) {
return;
}
function getFileName(){
return this.name;
}
File.prototype.__defineGetter__( "fileName", getFileName );
})(window.File)
它应该对具有文件名的浏览器没有影响,因为只有在文件
实例对象本身中找不到原型时,才会查看原型
JSFIDLE:(在firefox、chrome和opera中测试)
已编辑,因为opera不支持对象。请尝试以下操作:
(function(File){
if( !File ) {
return;
}
function getFileName(){
return this.name;
}
File.prototype.__defineGetter__( "fileName", getFileName );
})(window.File)
它应该对具有文件名的浏览器没有影响,因为只有在文件
实例对象本身中找不到原型时,才会查看原型
JSFIDLE:(在firefox、chrome和opera中测试)
由于opera不支持对象。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;
}
};
}
也许创建File.prototype.fileName setter和getter,即set/get名称,可以解决您的问题
然而,我并不知道它是如何工作的,我也不知道下面的代码是否有效
if(! ("name" in File.prototype) ){
File.prototype.fileName = {
get function(){
return this.name;
},
set function(val){
this.name = val;
}
};
}
您是否尝试将其添加到原型中?您是否尝试将其添加到原型中?