WishMeLz

生活其实很有趣

修改原型链导致前端预览PDF异常

添加/修改原型链,导致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);