首页 > 编程 > JavaScript > 正文

在原生不支持的旧环境中添加兼容的Object.keys实现方法

2019-11-19 15:29:41
字体:
来源:转载
供稿:网友

如下所示:

if (!Object.keys) { Object.keys = (function () {  var hasOwnProperty = Object.prototype.hasOwnProperty, //原型上的方法,只取自身有的属性;    hasDontEnumBug = !({toString: null}).propertyIsEnumerable('toString'), //ie6一下,!之后的内容为false;    dontEnums = [     'toString',     'toLocaleString',     'valueOf',     'hasOwnProperty',     'isPrototypeOf',     'propertyIsEnumerable',     'constructor'    ],    dontEnumsLength = dontEnums.length;  return function (obj) {   if (typeof obj !== 'object' && typeof obj !== 'function' || obj === null) throw new TypeError('Object.keys called on non-object');   var result = [];   for (var prop in obj) {    if (hasOwnProperty.call(obj, prop)) result.push(prop);   }   if (hasDontEnumBug) {    for (var i=0; i < dontEnumsLength; i++) {     if (hasOwnProperty.call(obj, dontEnums[i])) result.push(dontEnums[i]);    }   }   return result;  } })()};

以上这篇在原生不支持的旧环境中添加兼容的Object.keys实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表