JS 对象基本用法

45 阅读1分钟

声明对象的两种语法

let obj={'name':'frank','age':18}
let obj=new Object({'name':'frank','age':18})

键名是字符串,不是标识符,可以包含任意字符
引号可以省略,省略之后就只能写标识符
就算引号省略了,键名也还是字符串,只是被浏览器转化了\

如何删除对象的属性

let obj={'name':'frank','age':18}
delete ojb.name或者delete obj['name']

即可删除ojb的name属性
判断ojb是否还含有name属性,可以用 'name' in ojb===true

如何查看对象的属性

let obj={'name':'frank','age':18}
Object.keys(obj)//查看自身所有属性
console.dir(obj)//查看自身+共有的属性
obj.hasOwnProperty('name')//判断'name'这个属性是属于obj自身的还是属于共有的

如何修改或增加对象的属性

let obj={'name':'frank','age':18}

 //修改obj对象的name属性为张三
obj.name='zhangsan'
obj['name']='zhangsan'
obj['na'+'me']='zhangsan'

//通过批量赋值的方式可以增加obj对象的属性
Object.assign(obj,{age:18,gender:'man'})

//修改obj对象隐藏属性
let obj=Object.create(common)
obj.name='frank'

'name' in obj和obj.hasOwnProperty('name') 的区别

'name' in obj代表是判断name这个属性是否被obj这个对象所包含,但是不能保证是不是obj这个自身的属性还是共有的属性,可以通过obj.hasOwnProperty('name')来判断