gpt4 book ai didi

Javascript错误: this. form is undefined,我无法在成员方法中获取对象变量

转载 作者:行者123 更新时间:2023-11-30 13:07:23 24 4
gpt4 key购买 nike

我正在使用以下代码:

 var frontPic = e.target.files[0]
var frontPicName = frontPic.name
var salonId=$("#salonId").val()
upload = new Upload(frontPicName, salonId)
upload.resize(frontPic)

调用下面的代码

function Upload(filename, salonId){

var form = new FormData()
form.append("filename", filename)
form.append("salonId", salonId)
};

Upload.prototype.resize = function(file){
$.canvasResize(file,
{
width: 400,
height: 0,
crop: false,
quality: 100,
callback: function (data)
{
alert(data)
// Add file data
this.form.append("file", $.canvasResize('dataURLtoBlob', data));
$('body').css("background", "url("+data+")")
}
});
}

我的警报(数据)似乎工作正常,所以实际的调整大小 Action 看起来很好。

然而,对于行 this.form.append("file", $.canvasResize('dataURLtoBlob', data));

正确的语法是什么?

最佳答案

你的代码有两个问题:

  1. form 在构造函数中声明为局部变量,而不是对象的属性。

  2. 回调函数中的
  3. this 未引用 upload 对象。您必须将其存储在局部变量中。

function Upload(filename, salonId){

this.form = new FormData()
this.form.append("filename", filename)
this.form.append("salonId", salonId)
};

Upload.prototype.resize = function(file){

var self = this;

$.canvasResize(file,
{
width: 400,
height: 0,
crop: false,
quality: 100,
callback: function (data)
{
self.form.append("file", $.canvasResize('dataURLtoBlob', data));
$('body').css("background", "url("+data+")")
}
});
}

关于Javascript错误: this. form is undefined,我无法在成员方法中获取对象变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15193749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com