看undersource.js源碼中nonEnumerableProps函數(shù)貌似是為了把對(duì)象中不可遍歷的屬性加入key返回,而源碼注釋中提到ie9以下枚舉bug,測(cè)試過hasEnumBug值都是為false,那collectNonEnumProps函數(shù)就不會(huì)被執(zhí)行了,其次~返回這些不可遍歷的屬性值應(yīng)該沒有什么用處吧~再者為什么要單獨(dú)處理constructor屬性,相關(guān)源碼如下:function collectNonEnumProps(obj, keys) { var nonEnumIdx = nonEnumerableProps.length; var constructor = obj.constructor; var proto = (_.isFunction(constructor) && constructor.prototype) || ObjProto; // Constructor is a special case. var prop = 'constructor'; if (_.has(obj, prop) && !_.contains(keys, prop)) keys.push(prop); while (nonEnumIdx--) { prop = nonEnumerableProps[nonEnumIdx]; if (prop in obj && obj[prop] !== proto[prop] && !_.contains(keys, prop)) { keys.push(prop); } } }
undersource.js源碼中nonEnumerableProps函數(shù)作用
慕的地8271018
2018-09-04 18:19:13