object对象中一些特殊属性的应用与介绍
`
前言
本章重点介绍object对象的一些 特殊属性的应用,这些属性在高级函数比较常见,下面我总结了几个我经常见到的,
`
提示:以下是本篇文章正文内容,下面案例可供参考
一、object.defineProperty与object.defineProperties
object.defineProperty可以为对象定义属性与赋值,
Object.defineProperty(obj,'d',{
value:3,
configurable:false,//不能删除
enumerable:true,//可枚举
writable:true,
// value
})
object.defineProperties可以对象的多个属性同时赋值
Object.defineProperties(obj,{
c:{
writable:true,
value:3
},
e:{
get(){
return 5;
},
set(){
this.e=6;
}
}
});
二、 Object.getOwnPropertyNames()与Object.getOwnPropertyDescriptor()
Object.getOwnPropertyNames()可以获取到对象的key值并且返回一个数组,可以用数组的方法foreach遍历对象的键值
//返回一个数组包含对象的键值
Object.getOwnPropertyNames(obj).forEach(a=>console.log(a));
Object.getOwnPropertyDescriptor()可以获取对象的某个属性,并通过一个对象的形式返回出去
//返回一个对象键值描述的对象 后面加s 表示输出所有的属性对象
var b =Object.getOwnPropertyDescriptor(obj,'a');
console.log(b);
三,object.entries(),object.keys(),object.values()的含义
console.log(Object.entries(obj))//对象的key和值
console.log(Object.keys(obj))//对象的key组成的数组
console.log(Object.values(obj));//对象的值组成的数组
总结
例如:以上就是今天要讲的内容,本文仅仅简单介绍了object的一些属性使用,
完整代码与浏览器运行结果
<script>
//对象的属性应用
var obj = {
a:1,
b:2
}
//返回一个数组包含对象的键值
Object.getOwnPropertyNames(obj).forEach(a=>console.log(a));
//返回一个对象键值描述的对象 后面加s 表示输出所有的属性对象
var b =Object.getOwnPropertyDescriptor(obj,'a');
console.log(b);
//
//返回的数组形式
console.log(Object.entries(obj))//对象的key和值
console.log(Object.keys(obj))//对象的key组成的数组
console.log(Object.values(obj));//对象的值组成的数组
//定义对象的属性
Object.defineProperty(obj,'d',{
value:3,
configurable:false,//不能删除
enumerable:true,//可枚举
writable:true,
// value
})
delete obj.a;//false
// console.log(obj);
Object.defineProperties(obj,{
c:{
writable:true,
value:3
},
e:{
get(){
return 5;
},
set(){
this.e=6;
}
}
});
console.log(obj)
</script>