了解代码中使用的Javascript语法

了解代码中使用的Javascript语法,javascript,jquery,ajax,Javascript,Jquery,Ajax,我发现这段JavaScript代码允许异步上传文件,但有些部分我不理解。任何提示或解释都非常感谢-提前感谢 // Ajax File upload with jQuery and XHR2 // Sean Clark http://square-bracket.com // xhr2 file upload // data is optional $.fn.upload = function(remote, data, successFn, progressFn) { // if we

我发现这段JavaScript代码允许异步上传文件,但有些部分我不理解。任何提示或解释都非常感谢-提前感谢

// Ajax File upload with jQuery and XHR2
// Sean Clark http://square-bracket.com
// xhr2 file upload
// data is optional
$.fn.upload = function(remote, data, successFn, progressFn) {
    // if we dont have post data, move it along
    if (typeof data != "object") {
        progressFn = successFn;
        successFn = data;
    }
    //What is doing here?
    return this.each(function() {
        if ($(this)[0].files[0]) {
            var formData = new FormData();
            formData.append($(this).attr("name"), $(this)[0].files[0]);
this
的值是对调用
upload
的对象的引用。看起来您在这里谈论的是jQuery对象

所以
这个。每个(…
都被调用,并传递给它一个回调函数。因为在调用之前有一个
return
语句,
.each()
返回的值是从
upload
函数返回的,我相信在这种情况下它将是相同的
这个

下面是一个简化的演示:

//构造函数
功能测试(){
这个计数器=0;
}
//实例方法
Test.prototype.upload=函数(){
//'this'指调用'upload'的对象,因此
//可以访问它调用的'foo'方法。
返回此.foo(函数(){
return“foo被调用”;
});
};
Test.prototype.foo=函数(回调){
//'foo'方法需要一个回调函数,它调用该函数并
//记录回调返回的任何内容。然后它返回`this'`
//对象调用调用方。
log(callback());
归还这个;
};
var t=新测试();
var res=t.upload();
console.log(t==res);
this
的值是对调用了
upload
的对象的引用。似乎您在这里谈论的是jQuery对象

所以
这个。每个(…
都被调用,并传递给它一个回调函数。因为在调用之前有一个
return
语句,
.each()
返回的值是从
upload
函数返回的,我相信在这种情况下它将是相同的
这个

下面是一个简化的演示:

//构造函数
功能测试(){
这个计数器=0;
}
//实例方法
Test.prototype.upload=函数(){
//'this'指调用'upload'的对象,因此
//可以访问它调用的'foo'方法。
返回此.foo(函数(){
return“foo被调用”;
});
};
Test.prototype.foo=函数(回调){
//'foo'方法需要一个回调函数,它调用该函数并
//记录回调返回的任何内容。然后它返回`this'`
//对象调用调用方。
log(callback());
归还这个;
};
var t=新测试();
var res=t.upload();

console.log(t==res);
介意告诉我们哪些部分吗?或者整个代码片段吗?我添加了一个解释得更好的注释老实说,我所看到的都是多余的…它只是循环jQuery选择器返回的内容(
可能)并获取要上载的文件。
FormData
是一种异步发送表单的方法。这不是故意的,而是
$(此)[0]
是一个很好的指标,表明此代码的作者对事物的理解不是很深刻。它实际上与仅引用
完全相同,但会浪费内存和CPU。介意告诉我们哪些部分吗?或者整个代码片段吗?我添加了一个更好的解释。老实说,我所看到的都是多余的l、 …它只是循环jQuery选择器返回的内容(
可能),并获取要上载的文件。
FormData
是异步发送表单的一种方式。这不是什么意思,而是
$(这)[0]
是一个很好的指标,表明此代码的作者对事物的理解不是很深刻。它实际上与仅引用
完全相同,但会浪费内存和CPU。
// What's it doing here?