最近面试遇到问如何获取对象全部属性名的方法,总结一下:
1.esmascript分类
数据类型 又分为可枚举和不可枚举类型访问器类型
2.上下文分类
原型属性实例属性
// 遍历对象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
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
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
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)
// 遍历对象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 条评论) |