复现

// 扩大Array原型Array.prototype.pip = function(){    ...}// 创立数组实例var arr = [];// 应用for...in语句遍历实例for(let index in arr){    console.log(index);}// 数组实例中并无数据项,但遍历时会将原型办法pip遍历进去

起因

间接通过Array.prototype.pip的办法扩大原型办法,会默认pip办法为可枚举属性,所以会被for...in语句辨认并遍历。

解决

Object.defineProperties(Array.prototype, {    pip: {      enumerable: false, // 不可枚举      value: function () {        ...      }    }})