添加/修改原型链,导致pdf.js解析异常, 可能此库对原型链做了防污染处理
报错如下The `Array.prototype` contains unexpected enumerable properties: hasItem, removeItem; thus breaking e.g. `for...in` iteration of `Array`s
其中 hasItem
, removeItem
为自定义添加的内容
解决方法
let unexpectedProperties = [], logArr = [];
for (let key in Array.prototype) {
if (!Array.prototype.hasOwnProperty(key)) continue;
// 存放直接属性
unexpectedProperties.push(key);
};
// 存放原始键 原始方法
logArr = unexpectedProperties.map(v => ({ [v]: Array.prototype[v] }));
// 删除直接属性
unexpectedProperties.forEach(v => delete Array.prototype[v]);
等逻辑结束后在复原
Object.assign(Array.prototype, ...logArr);