整理一些js的对象方法,主要是自己看看
迭代和枚举。迭代是只重复一些步骤、循环,枚举是指遍历、经历
Object.assign()通过复制一个或多个对象来创建一个新对象
var a = {name:"张三",age:12}
var b = {school:'北大青鸟',address:'北京'}
var c = Object.assign(a,b)
console.log(c);
Object.create()使用指定的原型对象和属性创建一个新对象,它有两个参数第一个参数是该对象(创建对象的原型,表示要继承的对象),第二个参数是该对象的属性设置
configurable设置是否可以删除 enumerable设置是否可枚举(循环) writable设置是否可以修改
var f1 = Object.create({}, {
'a': {
value: '11',
configurable: true,
enumerable: true,
writable: true,
},
'b': {
value: '22',
configurable: false,
enumerable: false,
writable: false,
},
'c': {
value: '33',
configurable: true,
enumerable: true,
writable: true,
}
})
console.log(f1);
Object.entries()可以返回给定对象自身可枚举属性的[key,value]数组
var obj ={name:'张三',age:'21'}
Object.entries(obj)
console.log(obj);
Object.freeze()可以冻结对象,让对象中的代码不能被删除或者修改任何属性
Object.freeze(obj)
obj.name='zhangsan'
console.log(obj);
可以判断对象是否已经被密封(冻结)。冻结返回ture,为冻结返回false
var obj ={name:'张三',age:'21'}
console.log(Object.isSealed(obj));
object.defineProperty()给对象添加一个属性并指定该属性的配置。
var obj={}
Object.defineProperty(obj,'name',{
value:'张三',
writable: true,
enumerable: true,
configurable: true
})
console.log(obj);
Object.defineProperties ()给对象添加多个属性并分别执行他们的配置
var obj = {
name:'',
age:'',
}
Object.defineProperties(obj,{
name:{
get:function(){
return '张三'
}
},
age:{
get:function(){
return '21'
}
}
})
console.log(obj);
Object.getOwnPropertyDescriptor()返回对象执行的属性配置
var a={name:"张三",age:21}
object.seal可以使该对象只可修改(写),不可删除和添加
Object.seal(a)
var b = Object.getOwnPropertyDescriptor(a,'name')
console.log(b);
object.sealed()可以使对象不能删除和添加,但是可以修改
var a = {name:'张三',age:21}
var b=object.seal(obj)
console.log(b);