javascript:文件对象是不可变的吗?
在coffeescript中,我有以下代码,试图从图像中提取GPS信息:javascript:文件对象是不可变的吗?,javascript,file,object,properties,Javascript,File,Object,Properties,在coffeescript中,我有以下代码,试图从图像中提取GPS信息: EXIF.getData this, -> lat = EXIF.getTag(this, "GPSLatitude") long = EXIF.getTag(this, "GPSLongitude") alert(lat) alert(long) file
EXIF.getData this, ->
lat = EXIF.getTag(this, "GPSLatitude")
long = EXIF.getTag(this, "GPSLongitude")
alert(lat)
alert(long)
file.lat = lat
file.lng = long
console.log(file)
警报向我显示lat和long值存在,但不会存储在文件对象中。
控制台日志输出如下所示:
File { size: 95923, type: "image/jpeg", name: "pic1.jpg", path: "", lastModifiedDate: Date 2014-12-04T16:05:37.000Z, mozFullPath: "/home/me/Pictures/pic1.jpg" }
文件对象是否作为javascript对象不可变/只读?我错过什么了吗
我知道文件是敏感的,所有属性都是只读的,但我很惊讶不能更改文件对象来添加自己的属性…(事实如此)
因此不,
文件
对象不是不可变的。您始终可以使用新属性扩展它们
你好像被你的控制台愚弄了。出于某种原因,它没有输出
lat
和lng
属性,但您仍然可以在对象上访问它们。还可以尝试扩展(“检查”)记录的对象所有属性都是只读的,这告诉你几乎所有的事情,不是吗?文件对象是主机对象,它们可以按照自己的意愿运行。你使用哪种浏览器,Firefox?你用的是什么控制台?您是否尝试过简单地访问file.lat
?文件对象是可扩展的,我想你只是被日志愚弄了。@Bergi你说得对!警报(file.lat)向我显示值!为什么console.log会忽略它?事实上,我发现lat和lng是阵列…也许这就是原因?我不知道,但阵列不应该是原因。也许它在某种程度上区分了本机属性,或者从构造函数创建的属性,以及后来添加的属性。还可以尝试扩展(“检查”)记录的对象,我很确定您会在那里看到它们。