首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript代码重构

Javascript代码重构
EN

Stack Overflow用户
提问于 2013-03-31 09:13:28
回答 2查看 308关注 0票数 0

我有下面的代码正在工作

代码语言:javascript
复制
var exif = function(exifObject) {
    alert(exifObject.Orientation);
}

$(this).fileExif(exif);

问题是,我需要$(this).fileExif(exif)行后的警告值。

所以我试着做了以下几件事:

代码语言:javascript
复制
function getOrientation(exifObject){
    return(exifObject.Orientation);
}
getOrientation($(this).fileExif());

它不起作用。怎样才能在$(this).fileExif(exif)行之后获得警报值?

附加信息

console.log(exifObject)返回一个属性数组f.e的对象。Orientation

$(this)被包装在以下代码中:

代码语言:javascript
复制
$('body').on('change', '#imgFile', function(event) {

所以它是一个输入类型文件。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-31 09:33:53

您正在将exif (这是一个函数)传递给fileExif函数。这是一个例子,说明函数是JavaScript中的第一类对象,在本例中,exif是一个“回调”函数。也就是说,当fileExif函数完成后,它将其结果传递给exif函数,然后调用该函数。

在执行方面,alert将在fileExif函数之后调用。但是,如果迫切希望在函数之后编写代码,则可以在传递函数时声明该函数:

代码语言:javascript
复制
$(this).fileExif(function(exifObject) {
    alert(exifObject.Orientation);
});

然而,这可能没有原来的那么清楚。

票数 0
EN

Stack Overflow用户

发布于 2013-03-31 09:40:10

我只找到一个用于fileExif的jQuery插件。在这里它来源。这个插件使用本机FileReader。FileReader文件异步加载。你有两条路。首先-修改插件代码并使其同步(坏主意)。用asycn风格编写代码(最佳实践)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15728024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档