资讯专栏INFORMATION COLUMN

JS篇-遍历对象属性(for in、Object.keys、Object.getOwnPropert

sunnyxd / 3048人阅读

摘要:中几种遍历对象的方法,包括它们在使用场景方面各有不同。主要用于遍历对象的可枚举属性,包括自有属性继承自原型的属性输出如下返回一个数组,元素均为对象自有的可枚举属性输出如下用于返回对象的自有属性,包括可枚举和不可枚举的输出如下

js中几种遍历对象的方法,包括for in、Object.keys、Object.getOwnProperty,它们在使用场景方面各有不同。

for in

主要用于遍历对象的可枚举属性,包括自有属性、继承自原型的属性

var obj = {"name":"Poly", "career":"it"}
Object.defineProperty(obj, "age", {value:"forever 18", enumerable:false});
Object.prototype.protoPer1 = function(){console.log("proto");};
Object.prototype.protoPer2 = 2;
console.log("For In : ");
for(var a in obj) console.log(a);

输出如下

Object.keys

返回一个数组,元素均为对象自有的可枚举属性

var obj = {"name":"Poly", "career":"it"}
Object.defineProperty(obj, "age", {value:"forever 18", enumerable:false});
Object.prototype.protoPer1 = function(){console.log("proto");};
Object.prototype.protoPer2 = 2;
console.log("Object.keys:")
console.log(Object.keys(obj));

输出如下:

Object.getOwnProperty

用于返回对象的自有属性,包括可枚举和不可枚举的

var obj = {"name":"Poly", "career":"it"}
Object.defineProperty(obj, "age", {value:"forever 18", enumerable:false});
Object.prototype.protoPer1 = function(){console.log("proto");};
Object.prototype.protoPer2 = 2;
console.log("Object.getOwnPropertyNames: ");
console.log(Object.getOwnPropertyNames(obj));

输出如下:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/86629.html

相关文章

  • JS基础--JS中的可枚举属性与不可枚举属性以及扩展

    摘要:在中,对象的属性分为可枚举和不可枚举之分,它们是由属性的值决定的。这是因为中内置的属性是不可枚举的,所以不能被访问到。此对象不可扩展且指定的属性名称不存在。返回值一个数组,其中包含对象的可枚举属性和方法的名称。 在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的。可枚举性决定了这个属性能否被for…in查找遍历到。 一、怎么判断属性...

    dreamans 评论0 收藏0
  • JS中轻松遍历对象属性的几种方式

    摘要:当普通对象要转换成时就很有用,因为返回的格式与构造函数接受的格式完全相同。使用常规的构造函数可以将一个二维键值对数组转换成一个对象。在和早期标准中,根本没有指定属性的顺序。此函数还可以轻松地将纯对象属性映射到对象中。 为了保证的可读性,本文采用意译而非直译。 想阅读更多优质文章请猛戳GitHub博客,一年百来篇优质文章等着你! 自身可枚举属性 Object.keys() 方法会返回一个...

    isLishude 评论0 收藏0
  • JS对象(2)

    摘要:前言一篇彻底搞懂对象从此不用担心没对象啦本文从对象定义方法对象属性数据类型遍历几种方法对象拷贝和拦截对象属性方法及代码实现几个方面由浅入深介绍对象对象的声明方法字面量构造函数的作用创了一个新对象指向构造函数构造函数有返回会替换出来的对象如果 showImg(https://segmentfault.com/img/bVboXHr?w=550&h=392); 前言 一篇彻底搞懂对象,从此...

    CarterLi 评论0 收藏0
  • JS基础入门(三十六)—面向对象( 三 )

    摘要:所以不会报错函数声明可以先调用再声明函数声明解析时,不会放到前面。所以会报错报错多个方法之间直接书写不需要隔开我会说话解析其中方法和方法之间并没有用逗给开。 1.class class es6 中 为 关键字用来声明 一个 类 1.只能通过new调用 2.不存在变量提升 3.多个方法之间直接书写,不需要,隔开 4.类的方法是直接定义在类的原型上的 5.定义在类中的方法不可枚举 6.Ob...

    acrazing 评论0 收藏0
  • JS基础入门(三十六)—面向对象( 三 )

    摘要:所以不会报错函数声明可以先调用再声明函数声明解析时,不会放到前面。所以会报错报错多个方法之间直接书写不需要隔开我会说话解析其中方法和方法之间并没有用逗给开。 1.class class es6 中 为 关键字用来声明 一个 类 1.只能通过new调用 2.不存在变量提升 3.多个方法之间直接书写,不需要,隔开 4.类的方法是直接定义在类的原型上的 5.定义在类中的方法不可枚举 6.Ob...

    MiracleWong 评论0 收藏0

发表评论

0条评论

sunnyxd

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<