当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 在原生不支持的旧环境中添加兼容的Object.keys实现方法

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

2017年12月12日  | 移动技术网IT编程  | 我要评论

如下所示:

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实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网