JS遍历属性

可枚举属性

对象属性可枚举,表示该属性的值不可修改,可认为该属性是常量。 如何定义不可枚举的属性?

var obj = {name: 'jack', age:23}
Object.defineProperty(obj, 'id', {value : '123', enumerable : false });

获取对象所有可枚举属性

使用Object.keys(obj)可以获取对象obj自身所包含的所有可枚举属性。 例如:

  var arr = ["a", "b", "c"];
    console.log(Object.keys(arr)); // console: ["0", "1", "2"]


    var obj = { 0 : "a", 1 : "b", 2 : "c"};
    console.log(Object.keys(obj)); // console: ["0", "1", "2"]


    var an_obj = { 100: "a", 2: "b", 7: "c"};
    console.log(Object.keys(an_obj)); // console: ["2", "7", "100"]


    var my_obj = Object.create({}, { getFoo : { value : function () { return this.foo } } });
    my_obj.foo = 1;

    console.log(Object.keys(my_obj)); // console: ["foo"]

获取对象所有的实例属性

Object.getOwnPropertyNames(obj) ;//获得对象上所有的“实例属性”

判断对象是否拥有实例属性

obj.hasOwnProperty(‘id’); 
//只要该对象obj拥有属性id, 无论id是否可枚举,都返回true
for(var i  in obj){ } 
// 表示访问对象所有可枚举的属性,包括可枚举的实例属性和可枚举的原型对象的属性
“name”  in obj   
// 通过对象能够访问给定属性名时返回true, 无论该属性存在于实例中还是原型对象中

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ios 技术积累

swift 函数

下面定义名称 sayHello 的函数,只有一个 String 类型的 name 参数,函数返回值为 String 类型。

1253
来自专栏黑泽君的专栏

父类中如果没有无参构造方法(也即父类中只给了带参构造方法),子类的构造方法怎么办?

父类中如果没有无参构造方法(也即父类中只给了带参构造方法),子类的构造方法怎么办?

2701
来自专栏WD学习记录

C#学习笔记(五)

简单的按照成员副职对象可以通过派生于System.Object的MemberwiseClone()方法来完成。这是一个受保护的方法,但很容易在对象上定义一个调用...

651
来自专栏水击三千

JavaScript函数(二)

在前面我们已经对函数作了简单的介绍,比如函数的定义、函数的声明、函数的调用和函数的传参等。本节将进一步介绍函数的应用,深度理解函数的各种使用。 函数是一个对象,...

2897
来自专栏用户2442861的专栏

理解java Class类

http://blog.csdn.net/bingduanlbd/article/details/8424243/

1111
来自专栏五毛程序员

java反射机制入门3

2777
来自专栏大闲人柴毛毛

稳扎稳打JS——“继承”

JS使用原型链实现“继承” JS是“基于对象”的语言,因此没有继承。但可以使用JS的特性实现“继承”——原型链。 JS使用_proto_属性构造原型链,如 ...

4124
来自专栏GreenLeaves

JavaScript之面向对象学习三原型语法升级

1、到目前为止,我们是时候分析下前面的使用原型语法来定义对象有哪些不足的地方,代码如下: function Person(){ } Pe...

1799
来自专栏开源优测

[快学Python3]迭代器和生成器

迭代器 迭代是Python最强大的功能特色,是遍历访问序列元素的一种方式。 迭代器的特性是: 可以记住当前遍历位置 只能往前遍历,不能后退 从序列的第一个元素开...

2746
来自专栏顶级程序员

Java中的反射总结

刚开始学习Java的时候真的很难理解反射到底是个什么东西 一些书籍,哪怕是很经典的书籍都解释的让人感觉懵懵的,或许的确是我太笨 况且,网上说在将来学习框架的时...

3565

扫码关注云+社区

领取腾讯云代金券