繁体   English   中英

JavaScript代码重构

[英]Javascript code refactoring

我有下面的代码正在工作

var exif = function(exifObject) {
    alert(exifObject.Orientation);
}

$(this).fileExif(exif);

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

因此,我尝试执行以下操作:

function getOrientation(exifObject){
    return(exifObject.Orientation);
}
getOrientation($(this).fileExif());

这是行不通的。 我怎样才能在$(this).fileExif(exif)行之后获得警报值?

附加信息

console.log(exifObject)返回一个带有属性数组的对象,例如console.log(exifObject) Orientation

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

$('body').on('change', '#imgFile', function(event) {

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

您正在将exif (这是一个函数)传递给fileExif函数。 这是一个事实,即函数是JavaScript中的一流对象,并且在这种情况下, exif是“回调”函数。 也就是说,当fileExif函数完成时,它将结果传递给exif函数,然后调用该函数。

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

$(this).fileExif(function(exifObject) {
    alert(exifObject.Orientation);
});

但是,这可能不像原始的那样清晰。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM