Javascript 对象没有';不支持此属性或方法';条目';(polyfill不在边缘工作)
我也有同样的问题,我安装了polyfill作为第一个在我的应用程序上运行的脚本之一 这是有错误的JSJavascript 对象没有';不支持此属性或方法';条目';(polyfill不在边缘工作),javascript,polyfills,babel-polyfill,Javascript,Polyfills,Babel Polyfill,我也有同样的问题,我安装了polyfill作为第一个在我的应用程序上运行的脚本之一 这是有错误的JS const formdata = new FormData(form); for (var value of formdata.entries()) { console.log(value); } 这是我正在尝试的polyfill if (!Object.entries) { //this does not run on Edge. So Object.entries mus
const formdata = new FormData(form);
for (var value of formdata.entries()) {
console.log(value);
}
这是我正在尝试的polyfill
if (!Object.entries) {
//this does not run on Edge. So Object.entries must exist
Object.entries = function( obj ){
var ownProps = Object.keys( obj ),
i = ownProps.length,
resArray = new Array(i); // preallocate the Array
while (i--)
resArray[i] = [ownProps[i], obj[ownProps[i]]];
return resArray;
};
}
上面的脚本不在Edge上运行。因此对象。条目必须存在。所以我尝试了以下方法
现在我确定脚本已经在页面上了。但是当我使用Object.entries
时,错误出现在使用polyfill之前
尽管polyfill肯定在页面上,但为什么会运行错误而不是边缘上的polyfill?您链接到的这个Q&A告诉您使用对象。entries
polyfill在FormData
实例上提供entries
方法是绝对错误的。您为Object.entries
提供的polyfill将entries
方法添加到Object
构造函数对象:也就是说,您可以安全地使用文本表达式Object.entries(something)
调用对象对象上的方法entries
Object.entries
是一个不同的函数,执行的操作与FormData
实例上存在的entries
方法不同
相反,对于Formdata.prototype.entries
,您需要一个polyfill。有一个选项在可用,但它通过让您编写formDataEntries(myForm)
而不是newformdata(myForm).entries()
来实现其目标。这不是一个合适的多边形填充(他们称之为“ponyfill”),因为它没有向FormData
添加entries
方法,而是提供了一个全新的函数来完成相同的任务。与。EdgeObject.entries
是Object
对象的静态方法,而不是实例方法。
Object.entries = function( obj ){
var ownProps = Object.keys( obj ),
i = ownProps.length,
resArray = new Array(i); // preallocate the Array
while (i--)
resArray[i] = [ownProps[i], obj[ownProps[i]]];
return resArray;
};