Javascript 如何扩展FormData?

Javascript 如何扩展FormData?,javascript,oop,object,inheritance,Javascript,Oop,Object,Inheritance,使用这个建议,我尝试了extand和FormData来实现一个新方法,但它不起作用。按照我的代码: function Form(form){ FormData.apply(this, form); } Form.prototype = new FormData(); Form.prototype.constructor = Form; 控制台向我显示以下消息: 未捕获的TypeError:构造“FormData”失败:请使用“new”运算符,此DOM对象构造函数不能作为函数调用 我哪

使用这个建议,我尝试了extand和FormData来实现一个新方法,但它不起作用。按照我的代码:

function Form(form){
    FormData.apply(this, form);
}

Form.prototype = new FormData();
Form.prototype.constructor = Form;
控制台向我显示以下消息:

未捕获的TypeError:构造“FormData”失败:请使用“new”运算符,此DOM对象构造函数不能作为函数调用


我哪里出错了?

错误消息很奇怪,是哪个浏览器?无论如何,请尝试修复apply的第二个参数,它必须是一个数组。您还应该使用
Form.prototype=Object.create(FormData.prototype)
。我更改了
Form.prototype=Object.create(FormData.prototype)
FormData.apply(此[表格])但错误完全相同…您在哪里执行此代码?我可以看看FormData的定义吗?事实上,我没有设置FormData,它的定义是来自javascript obs的本机定义:我不知道使用本机“类”这样做是否荒谬,我完全忘记了这一点。本机类很难扩展,因为它们的构造函数通常是工厂(可能总是)。因此,它们总是返回一个新实例,并且不会对
应用突变。您的错误消息很奇怪,但是。。。您的代码在IE11中不会产生任何错误,但由于上述原因,它无法按预期工作。错误消息相当奇怪,是哪个浏览器?无论如何,请尝试修复apply的第二个参数,它必须是一个数组。您还应该使用
Form.prototype=Object.create(FormData.prototype)
。我更改了
Form.prototype=Object.create(FormData.prototype)
FormData.apply(此[表格])但错误完全相同…您在哪里执行此代码?我可以看看FormData的定义吗?事实上,我没有设置FormData,它的定义是来自javascript obs的本机定义:我不知道使用本机“类”这样做是否荒谬,我完全忘记了这一点。本机类很难扩展,因为它们的构造函数通常是工厂(可能总是)。因此,它们总是返回一个新实例,并且不会对
应用突变。您的错误消息很奇怪,但是。。。您的代码在IE11中不会产生任何错误,尽管由于上述原因,它无法按预期工作。