一、声明对象的两种语法
// 正规语法
let obj = new Object({ 'name': 'dongdong' })
// 简单语法
let obj = { 'name': 'dongdong', 'age': 18 }
复制代码
二、如何删除对象的属性
使用 delete
操作符:
let obj = { name: 'dongdong', age: 18 }
'name' in obj // true
delete obj.name
'name' in obj // false
复制代码
三、如何查看对象的属性
let obj = { name: 'dongdong', age: 18 }
obj.name // "dongdong"
obj['age'] // 18
Object.keys(obj) // ["name", "age"]
复制代码
四、如何修改或增加对象的属性
直接赋值:
let obj = { name: 'dongdong' }
obj.name = 'barry'
obj['name'] = 'barry'
obj['na' + 'me'] = 'barry'
let key = 'name'
obj[key] = 'barry'
复制代码
批量赋值:
let obj = { name: 'dongdong' }
Object.assign(obj, { age: 18, gender: 'man' })
obj // {name: "dongdong", age: 18, gender: "man"}
复制代码
对于增加和修改来说,已有属性则改,没有属性则增。
五、'name' in obj
和 obj.hasOwnProperty('name')
的区别
hasOwnProperty
会区分属性是自身的还是继承的,而 in
不会区分。
let obj = { name: 'dongdong' }
'name' in obj // true
obj.hasOwnProperty('name') // true
'toString' in obj // true
obj.hasOwnProperty('toString') // false
复制代码
以上代码,toString
属性存在于原型对象上,而 in
仍然返回 true,hasOwnProperty
则返回 false,表示对象本身不存在 toString
属性。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END