JavaScript中Object.getOwnPropertyNames()方法怎么用
导读:本文共1001.5字符,通常情况下阅读需要3分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: Object.getOwnPropertyNamesObject.getOwnPropertyNames()方法同样是也是以对象为参数,返回一个包含该对象内所匹配的属性和方法的数组大家在这里会发出疑问,这两个有啥区别?Object.getOwnPropertyNames()可以返回所有的属性,而Object.keys()只能返回可枚举属性,诶?到这里大家又疑惑了... ...
目录
(为您整理了一些要点),点击可以直达。Object.getOwnPropertyNames
Object.getOwnPropertyNames()
方法同样是也是以对象为参数,返回一个包含该对象内所匹配的属性和方法的数组
大家在这里会发出疑问,这两个有啥区别?Object.getOwnPropertyNames()
可以返回所有的属性,而Object.keys()
只能返回可枚举属性,诶?到这里大家又疑惑了可枚举属性又是个啥?不要着急,我来解释一下什么叫可枚举属性
可枚举属性
可枚举或者不可枚举属性是对象内部通过可枚举标志enumerable来进行区分的,在默认情况下,我们obj.name = "cxy"
为对象新增了一个属性后,其可枚举标志enumerable为ture,而当其值为false的时候它是不可枚举的,当我们对对象进行for
,Object.keys()
,JSON.stringify()
的时候不可枚举属性是找不出来的,我们可以理解为不可枚举属性是隐身的
现在我们拿上面的Object.getOwnPropertyNames
和Object.keys()
进行实战举例,我们通过defineProperty来为对象添加age属性,因为该方法可以设置枚举标志,这里设置为false,可以看到下面两个不同的返回结果
varstuObj={name:"cxy"}Object.defineProperty(stuObj,'age',{value:"18",enumerable:false});console.log(Object.keys(stuObj))console.log(Object.getOwnPropertyNames(stuObj))
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
JavaScript中Object.getOwnPropertyNames()方法怎么用的详细内容,希望对您有所帮助,信息来源于网络。