【JavaScript对象方法大全】
一、Object.assign(目标对象,源对象) 浅复制、合并、拷贝、继承属性和不可枚举的属性是不能被拷贝的将所有源对象的所有属性复制到目标对象上,并且返回目标对象不能复制不可枚举属性var o=Object.assign({},obj,obj1);var o ={...obj,...obj1}//复制,重新变成1个新对象二、Object.keys(o) 获取o对象的所有key组成的数组三、Ob
·
一、Object.assign(目标对象,源对象) 浅复制、合并、拷贝、
继承属性和不可枚举的属性是不能被拷贝的
将所有源对象的所有属性复制到目标对象上,并且返回目标对象
不能复制不可枚举属性
var o=Object.assign({},obj,obj1);
var o ={...obj,...obj1}//复制,重新变成1个新对象
二、Object.keys(o) 获取o对象的所有key组成的数组
三、Object.values(o) 获取o对象的所有value组成的数组
四、Object.entries(o)
返回一个给定对象自身可枚举属性的键值对数组
五、Object.is() 判断两个值是否相同。
如果下列任何一项成立,则两个值相同:
Object.is({}, {})// false
+0 === -0 //true
NaN === NaN // false
Object.is(+0, -0) // false
Object.is(NaN, NaN) // true
六、Object.fromEntries 把array转换为object
Object.entries的反向操作,把array转换为object 。
该方法可以把键值对列表转化为一个对象,入参可以是一个Map、Set、Array类型,或者其他实现了可迭代协议的可迭代对象。
七、delete 删除对象的属性
八、 Object.defineProperty(对象,属性名,属性描述对象); 定义属性,也可以定义Symbol
属性描述对象:writable/value,set/get这两对不能同时出现
默认为false
{
configurable:true,//不可删除和不可修改属性描述对象
enumerable:true, //是否可以枚举
writable:true, //是否只读
value:1, //属性值
set:function(){ //设置
},
get:function(){ //读取
}
}
var obj={a:1,b:2};
obj.c=3;
Object.defineProperty(obj,"d",{
value:4
})
console.log(obj);
例:Object.defineProperty(obj,"c",{
configurable:true,
enumerable:true,
writable:false,
value(a,b){
console.log(a+b)
}
})
obj.c(3,5);//8
默认例:// var obj={a:1,b:2};
// obj.c=3;
// Object.defineProperty(obj,"d",{
// value:4
// })
// obj.d=5
// console.log(obj);
这时候的d属性不能删除不能修改只读而且不可枚举
九、 Object.defineProperties()定义属性,可定义多个,默认为false,可定义Symbol
Object.defineProperties(obj,{
c:{
writable:true,
value:30
},
d:{
configurable:true,
value:4
},
e:{
enumerable:true,
value:5
}
})
var s=Symbol();
obj[s]=10;
console.log(obj);
十、Object.getOwnPropertyNames(obj) 获取对象的所有属性名,返回属性名组成的数组,Symbol不能获取
十一、Object.getOwnPropertySymbols(obj) 获取对象的所有Symbol属性名,返回属性名组成的数组
合并十和十一:concat和解构 // 不能获取到原型属性 // var arr=Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj)); // console.log(arr); // var arr=[...Object.getOwnPropertyNames(obj),...Object.getOwnPropertySymbols(obj)]; // console.log(arr)
十二、Object.getOwnPropertyDescriptor(obj,"d"); 获取属性的描述对象
十三、Reflect.ownKeys(obj); 获取到对象所有属性和方法名,包括Symbol属性
十四、Reflect.defineProperty 定义属性,默认为false,可定义Symbol,与Object.defineProperty相同
十五、 Reflect.deleteProperty(obj,"c"); 删除
十六、 Object.freeze(obj);冻结 不能修改属性,不能删除属性,不能添加属性
十七、 Object.isFrozen(obj) 判断对象是否被冻结
十八、 Object.seal(obj); 可以修改,不能删除,不能添加属性
十九、 Object.isSealed(obj) 判断是否使用seal
二十、 Object.preventExtensions(obj); 可以修改,可以删除,但是不能添加新属性,不能扩展
二十一、Object.isExtensible(obj) 判断是否可以扩展
二十二、Object.getOwnPropertyDescriptors(obj) 获取对象中所有属性的描述对象列表对象
二十三、Object.getPrototypeOf(obj) 获取obj对象的原型链
二十四、Object.setPrototypeOf(o1,o) 设置对象的原型链
将o1的原型链设置为o
二十五、 判断对象的对象属性是否包含这个属性名
console.log(o1.hasOwnProperty("b"))
console.log(Object.hasOwn(o1,"b"))
更多推荐
已为社区贡献1条内容
所有评论(0)