let triangle={
a:1,
b:2,
c:3
}
function coloTriangle(){
this.color='red';
}
coloTriangle.prototype=triangle;
let color=new coloTriangle();
Object.defineProperty(color,'auto',{
value:'auto'
})
let symbolProp=Symbol('symbol');
color[symbolProp]='symbol'
/**
* Reflect.ownKeys:Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols)
* 没有来自继承的,都是own
* 不管枚举不枚举都能遍历
* 还可以拿到symbol类型属性
*/
Reflect.ownKeys(color) //["color","auto",Symbol(symbol)]
/**
* Object.getOwnPropertyNames
* 没有来自继承,都是own
* 不管枚举不枚举都能遍历
* 拿不到symbol类型属性
*/
Object.getOwnPropertyNames(color);//["color","auto"]
/**
* Object.getOwnPropertySymbols
* 只能own
* 也不管枚举不枚举
* 只能拿到Symbol类型属性
*/
Object.getOwnPropertySymbols(color);//[Symbol(symbol)]
/**
* Object.keys就有点矫情了
* 只能是own
* and 要枚举才行
* 拿不到Symbol类型属性
*
*/
Object.keys(color);//["color"]
/**
* for in 就是也是取其一把
* 不需要own,可以来自继承属性
* 但是一定会要枚举
* 拿不到Symbol类型属性
*/
for(let i in color){
console.log(i);//color a b c
}
 
 
 
 
哈哈哈 还有什么的话欢迎补充

获取Object对象属性的方法,Reflect.ownKeys, Object.getOwnPropertyNames,Object.getOwnPropertySymbols,Object.keys,for in的更多相关文章

  1. js object 对象 属性和方法的使用

    //object 对象 属性和方法的使用 var person = new Object(); person.name="张海"; person.age="; perso ...

  2. 转: JavaScript 获取对象属性和方法

    一.获取对象属性和方法 Object.keys()for in 返回对象的可枚举属性和方法的名称数组. Object.getOwnPropertyNames() 返回的数组的所有属性(可枚举或不可枚举 ...

  3. JavaScript 获取对象属性和方法

    ShineJaie 原创整理,转载请注明出处. 一.获取对象属性和方法 Object.keys() 返回对象的可枚举属性和方法的名称数组. Object.getOwnPropertyNames() 返 ...

  4. ES6之6种遍历对象属性的方法

    ES6之6种遍历对象属性的方法 for ... in 循环遍历对象自身的和继承的可枚举属性(不含Symbol属性). Obejct.keys(obj),返回一个数组,包括对象自身的(不含继承的)所有可 ...

  5. Java反射学习-1 - 反射获取类的属性,方法,构造器

    新建一个Person类 package cn.tx.reflect; /** * 注解初步了解 * @author Administrator * */ public class Person { p ...

  6. Js基础知识7-JavaScript所有内置对象属性和方法汇总

    对象什么的,程序员可是有很多呢... JS三大对象 对象,是任何一个开发者都无法绕开和逃避的话题,她似乎有些深不可测,但如此伟大和巧妙的存在,一定值得你去摸索.发现.征服. 我们都知道,JavaScr ...

  7. JavaScript设置获取和设置属性的方法

    这篇文章主要介绍了JavaScript设置获取和设置属性的方法,学会使用getAttribute.setAttribute的用法,需要的朋友可以参考下   getAttribute 该方法用来获取元素 ...

  8. getSelection、range 对象属性,方法理解,解释

    网上转了一圈发现没有selection方面的解释,自己捣鼓下 以这段文字为例子.. <p><b>法国国营铁路公司(SNCF)20日承认,</b>新订购的2000列火 ...

  9. Javascript对象属性与方法汇总

    Javascript对象属性与方法汇总 发布时间:2015-03-06 编辑:www.jquerycn.cn 详细介绍下,javascript对象属性与对象方法的相关知识,包括javascript字符 ...

随机推荐

  1. ansible 软件相关模块,剧本

    软件相关模块 yum rpm和yum的区别 rpm:redhat package manager yum 可以解决依赖关系 yum 源配置 使用yum下载时需要先下载epel [epel] name= ...

  2. 基于 Docker 的 MySQL 主从复制搭建

    出处:https://www.jianshu.com/p/ab20e835a73f

  3. 03-numpy-笔记-expand_dims

    >>> x = np.array([[1,2,3],[4,5,6]]) >>> x.shape (2, 3) >>> np.expand_dims ...

  4. 初次运行git时的配置

    初次运行git时的配置 # 参考文档 https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%88%9D%E6%AC%A1%E8%BF%90%E8% ...

  5. Maven打包插件Assembly(七)

    1. 在 dubbo 的 provider 项目(实现类项目dubbo-service-impl)中 pom.xml 配置 assembly插件信息 <!-- 指定项目的打包插件信息 --> ...

  6. 启动hadoop后jps没有namenode,并且启动报错9000

    启动hadoop报错: 解决方法: 我发现没有9000端口被占用,也不知道9000到哪去了,但是也没有NameNode,于是,直接把NameNode格式化了,再重启HDFS即可. 格式化命令:

  7. Spring Cloud微服务安全实战_4-3_订单微服务&价格微服务

    实现一个场景: 订单微服务: POM: <?xml version="1.0" encoding="UTF-8"?> <project xml ...

  8. xBIM初步使用

    1.新建一个c#项目,在工具->NuGet程序包管理器->程序包管理控制台 输入如下命令: Install-Package Xbim.Essentials -Version 4.0.29 ...

  9. 零次学习(Zero-Shot Learning)入门(转)

    很久没有更文章了,主要是没有找到zero-shot learning(ZSL)方面我特别想要分享的文章,且中间有一段时间在考虑要不要继续做这个题目,再加上我懒 (¬_¬),所以一直拖到了现在. 最近科 ...

  10. 使用GitHub的仓库以及介绍

    一.创建仓库 假如Responsitory name是Hello-World Description一栏中可以设置仓库的说明. Public, Private  在这一栏可以选择Public还是Pri ...