
Object.keys() 和 Object.getOwnPropertyNames() 的区别
发布日期:2021-05-07 23:08:37
浏览次数:25
分类:精选文章
本文共 875 字,大约阅读时间需要 2 分钟。
Object.keys() 和 Object.getOwnPropertyNames() 的区别
大部分情况下Object.getOwnPropertyNames()与Object.keys(obj)的功能是一样的,我们一般也是用来获取一个对象中所有属性,例如
const obj = { property1: 1, property2: 2,};console.log(Object.keys(obj));console.log(Object.getOwnPropertyNames(obj));
> > Array ["property1", "property2"]
> >Array ["property1", "property2"]
Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致 。
Object.getOwnPropertyNames()方法返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性但不包括Symbol值作为名称的属性)组成的数组。
共同点:都是返回自身的属性,不会返回原型链上的。
区别: Object.keys()返回可枚举的,Object.getOwnPropertyNames()返回所有的。
Person = function(name){ this.name = name || ''}Person.prototype.sayHello = function(){ console.log('hello')}p = new Person('yangyang')p.age = 18Object.defineProperties(p, { age:{ enumerable:false }})console.log(Object.keys(p)) // ["name"]console.log(Object.getOwnPropertyNames(p)) // ["name", "age"]
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年04月02日 07时32分30秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
linux命令-压缩与打包
2021-05-09
ORACLE 11g 生产中高水位线(HWM)处理
2021-05-09
centos 6.x 编译安装 pgsql 9.6
2021-05-09
weblogic 服务器部署SSL证书
2021-05-09
oracle 11g not in 与not exists 那个高效?
2021-05-09
Linux 安装Redis 5.0(以及参数调优)
2021-05-09
html5 Game开发系列文章之 零[开篇]
2021-05-09
为什么阿里巴巴建议集合初始化时,指定集合容量大小
2021-05-09
为什么阿里巴巴要求谨慎使用ArrayList中的subList方法
2021-05-09
Redis不是一直号称单线程效率也很高吗,为什么又采用多线程了?
2021-05-09
基于Python的Appium环境搭建合集
2021-05-09
Requests实践详解
2021-05-09
接口测试简介
2021-05-09
Golang Web入门(4):如何设计API
2021-05-09
让sublime实现js控制台(前提是安装了nodejs)
2021-05-09
树莓派连接二手液晶屏小记
2021-05-09
error: 'LOG_TAG' macro redefined
2021-05-09
android10Binder(一)servicemanager启动流程
2021-05-09