关闭

[置顶] JS原生获取对象的所有属性-函数包装

标签: 函数对象继承遍历javascript
953人阅读 评论(0) 收藏 举报
分类:

获得对象的所有属性(不管是自身的还是继承的,以及是否可枚举),可以使用下面的函数。

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

上面代码依次获取obj对象的每一级原型对象“自身”的属性,从而获取Obj对象的“所有”属性,不管是否可遍历。

下面是一个例子,列出Date对象的所有属性。

inheritedPropertyNames(Date)
// [
//  "caller",
//  "constructor",
//  "toString",
//  "UTC",
//  "call",
//  "parse",
//  "prototype",
//  "__defineSetter__",
//  "__lookupSetter__",
//  "length",
//  "arguments",
//  "bind",
//  "__lookupGetter__",
//  "isPrototypeOf",
//  "toLocaleString",
//  "propertyIsEnumerable",
//  "valueOf",
//  "apply",
//  "__defineGetter__",
//  "name",
//  "now",
//  "hasOwnProperty"
// ]

1
0
查看评论

浅谈原生JS操作DOM常用的属性和方法

① 获取所有子节点对象 childeNodes  ② 获取第一个子节点 firstChild    ③ 获取最后一个子节点 lastChild     ④ 获取父节点 parentNode   ⑤ 获取下一个兄弟节点...
  • zhouziyu2011
  • zhouziyu2011
  • 2017-03-13 15:29
  • 2113

js获取元素属性

获取id:this.event.srcElement.id 获取Input标签自定义属性的值  : HTML代码: JavaScript代码: 因为data不是input标签原生的属性,所以不能使用"点"操作。 非标准属性,要用:obj.ge...
  • superit401
  • superit401
  • 2016-06-27 21:10
  • 3283

原生js获取对象属性

var ownattr= obj.attributes[ownattr].nodeValue; //自定义属性采用此方式获得 var id = obj.id; //基本属性可以采用此方式获得
  • xsgnzb
  • xsgnzb
  • 2014-12-10 10:19
  • 468

显示js对象所有属性和方法的函数

function ShowObjProperty(Obj) { var PropertyList=''; var PropertyCount=0; for(i in Obj){ if(Obj.i !=null) PropertyList=PropertyLis...
  • jiangeeq
  • jiangeeq
  • 2016-09-07 10:45
  • 643

JS获取自定义属性data值

var tree = document.getElementById("tree"); //getAttribute()取值属性 console.log(tree.getAttribute("data-leaves")); console.log(tre...
  • kongjunchao159
  • kongjunchao159
  • 2015-08-06 15:39
  • 32624

原生JS forEach()和map()遍历的区别以及兼容写法

一、原生JS forEach()和map()遍历 共同点:      1.都是循环遍历数组中的每一项。   2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前项的索引index,原始数组input。 3....
  • huangpb123
  • huangpb123
  • 2016-10-08 14:25
  • 9291

js中获取对象的属性名称

在网上搜的时候基本都是用for循环获取对象属性数组,其实有个更简单的方法: function getObjKeys() {     var obj = {         "nam...
  • xinusuoshu
  • xinusuoshu
  • 2017-03-19 12:46
  • 207

原生Js通过class属性值获取对象

原生Js通过class属性值获取对象 window.onload = function(){ console.log(getElementByClassName("tag").length); console.log(getElementByClassName("...
  • wow4464
  • wow4464
  • 2016-01-04 15:03
  • 18196

显示js对象的所有属性名称和属性值

参考文章:http://blog.csdn.net/dxmgood/article/details/6360815 // 显示js对象的所有属性名称和属性值 function displayProp(obj){ var msg ="";...
  • friendan
  • friendan
  • 2016-04-15 15:02
  • 5569

js获取对象的所有属性和方法

有时候需要知道一个js对像的所有属性和方法来帮助调试,下面是再网上找到的一个比较给力的方法 function displayProp(obj){ var names=""; for(var name in obj){ ...
  • xukun5137
  • xukun5137
  • 2015-10-20 08:55
  • 3192
    个人资料
    • 访问:23897次
    • 积分:226
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:6篇
    • 译文:0篇
    • 评论:3条
    文章分类
    文章存档