首页 > 作文

JS获取对象属性名总结

更新时间:2023-04-04 20:45:58 阅读: 评论:0

最近面试遇到问如何获取对象全部属性名的方法,总结一下:

对象属性类型分类:

1.esmascript分类

数据类型 又分为可枚举和不可枚举类型访问器类型 

2.上下文分类

原型属性实例属性 

1.列举自身但不包括原型的可枚举属性名 object.keys(obj)

  // 遍历对象function person(name, age) {  this.name = name;  this.age = age;}person.prototype.demo = function() {};let cj = new person('cj', 25);// 通过obj合规心得ect.defineproperty定义一个不可枚举属性object.defineproperty(cj, 'weight', {  enumerable:fal })// enumerable = true// console.log(object.keys(cj)) // name age// enumerable = fal// console.log(object.keys(cj)) // name age weight

2.列举包括自身不可枚举但不包括原型的属性名 object.getownpropertynames(obj)

数字表白大全
function person(name, age) {  this.name = name;  this.age = age;}// 设置原型属性person.prototype.demo = function() {};let cj = new person('cj', 25);// 通过object.defineproperty定义一个不可枚举属性object.defineproperty(cj, 'weight', {  enumerable:fal })// 获取属性名console.log(object.getownpropertynames(cj)) // name age weight

3.获取自身和原型链上的可枚举属性 for in 返回的顺序可能与定义顺序不一致

function person(name, age) {  this.name = name;  this.age = age;}// 设置原型属性person.prototype.demo = function() {};object.prototype.j = 1let cj = new person('cj', 25);// 通过object.defineproperty定义一个不可枚举属性object.defineproperty(cj, 'weight', {  enumerable:fal })let props = []for(prop in cj){  props.push(prop)}console.log(props) //name age weight j

4.获取自身symbol属性 object.getownpropertysymbols(obj)

let obj = {};// 为对象本身添加symbol属性名let a = symbol("a双刃剑英文");obj[a] = "localsymbol";// 为对象原型添加symbol属性名let b = symbol("b")object.prototype[b] = 111let objectsymbols = object.getownpropertysymbols(obj);console.log(objectsymbols); //sy村官个人总结mbol(a)

5.获取自身包括不可枚举和symbol属性名,但不包括原型 reflect.ownkeys(obj)

  // 遍历对象function person(name, age) {  this.name = name;  this适合男生的工作.age = age;}person.prototype.demo = function() {};let s = symbol('s')let cj = new person('cj', 25);// 通过object.defineproperty定义一个不可枚举属性object.defineproperty(cj, 'weight', {  enumerable: fal })cj[s] = 1let a = symbol('a')object.prototype[a] = 1console.log(object.getownpropertynames(cj)) //name age weight console.log(reflect.ownkeys(cj)) //name age weight symbol(s)

更多关于js获取对象属性名的使用小技巧请查看下面的相关链接

本文发布于:2023-04-04 20:45:57,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/2aa035deddd439cd43c87806cb499f50.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:JS获取对象属性名总结.doc

本文 PDF 下载地址:JS获取对象属性名总结.pdf

标签:属性   原型   对象   定义
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图