// ...
var a = {
title:'初级前端工程师'
}
var b = {
address: '北京中关村'
}
var c = { ...a, ...b}
console.log(c)
// { title: '初级前端工程师', address: '北京中关村' }
//Object.assign()
var job = {
title:'高级前端工程师'
}
var salary = {
wage: '22w'
}
var HaiJun = {}
console.log(Object.assign(HaiJun,a,job,salary))
//{ title: '高级前端工程师', wage: '22w' }
对象标识类型及相等判断
console.log(Object.is(1,"1")) //false
console.log(Object.is({},{})) //false
console.log(Object.is(+0, 0)) //true
var objA = {
id:2
}
var objB = {
id:2
}
console.log(Object.is(objA.id,objB.id)) //true
对象的属性
数据属性
如何修改对象属性默认行为
let obj = {
code: 200,
title: '前端自学社区',
}
Object.defineProperty(obj,"code",{
writable: false //禁止修改对象属性 code
})
obj.code = 201
console.log(obj) // 返回{ code: 200, title: '前端自学社区' }
访问器属性
let obj = {
code: 200,
title: '前端自学社区',
}
Object.defineProperty(obj,"mounth",{
set(newValue){
if(newValue >3) {
this.code = 400
}
},
get(){
return this.code
}
})
obj.mounth = 4
console.log(obj) //{ code: 400, title: '前端自学社区' }
读取属性的行为
let obj = {
code: 200,
title: '前端自学社区',
}
const des = Object.getOwnPropertyDescriptor(obj,'code')
console.log(des)
//{ value: 200, writable: true, enumerable: true, configurable: true }
console.log(des.writable) //true
本文分享自微信公众号 - 前端自学社区(gh_ce69e7dba7b5)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。