在原生不支持的旧环境中添加兼容的Object.keys实现方法
如下所示:
if(!Object.keys){
Object.keys=(function(){
varhasOwnProperty=Object.prototype.hasOwnProperty,//原型上的方法,只取自身有的属性;
hasDontEnumBug=!({toString:null}).propertyIsEnumerable('toString'),//ie6一下,!之后的内容为false;
dontEnums=[
'toString',
'toLocaleString',
'valueOf',
'hasOwnProperty',
'isPrototypeOf',
'propertyIsEnumerable',
'constructor'
],
dontEnumsLength=dontEnums.length;
returnfunction(obj){
if(typeofobj!=='object'&&typeofobj!=='function'||obj===null)thrownewTypeError('Object.keyscalledonnon-object');
varresult=[];
for(varpropinobj){
if(hasOwnProperty.call(obj,prop))result.push(prop);
}
if(hasDontEnumBug){
for(vari=0;i
以上这篇在原生不支持的旧环境中添加兼容的Object.keys实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
 