码迷,mamicode.com
首页 > 其他好文 > 详细

怎样获取对象的所有属性

时间:2019-10-16 17:48:39      阅读:414      评论:0      收藏:0      [点我收藏+]

标签:遍历属性   each   return   object   obj   pre   完成后   完成   使用   

使用Object.keys()可以获取对象本身所有的可遍历属性;

使用Object.getOwnPropertyNames()可以获取对象本身所有属性, 不管是否可遍历;

使用for...in...循环可以获取对象所有可遍历属性, 包括本身的属性和继承的属性;

使用下面的函数可以获取对象的所有属性, 不管是本身还是继承, 不管是可遍历还是不可遍历: 

function inheritedPropertyNames(obj) {
  var props = {};
  while(obj) {
    Object.getOwnPropertyNames(obj).forEach(function(p) {
      props[p] = true;
    });
    obj = Object.getPrototypeOf(obj);
  }
  return Object.getOwnPropertyNames(props);
}

 

这个函数的执行逻辑是: 遍历所有当前对象的属性, 完成后把原型赋值给当前对象, 继续下一轮循环, 直到: Object.getPrototypeOf(Object.prototype.__proto__)为止;

怎样获取对象的所有属性

标签:遍历属性   each   return   object   obj   pre   完成后   完成   使用   

原文地址:https://www.cnblogs.com/aisowe/p/11686935.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!