这篇文章主要为大家展示了“JavaScript中Object.getOwnPropertyNames()方法怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript中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,可以看到下面两个不同的返回结果
var stuObj = { name: "cxy" } Object.defineProperty(stuObj, 'age', { value: "18", enumerable: false }); console.log(Object.keys(stuObj)) console.log(Object.getOwnPropertyNames(stuObj))
以上是“JavaScript中Object.getOwnPropertyNames()方法怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。