JS 对象基本用法

56 阅读1分钟

声明对象的两种语法

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

如何删除对象的属性

delete obj.xxxdelete obj[‘xxx’]

‘xxx’ in obj === false 不含属性名

‘xxx’ in obj && obj.xxx == undefined含有属性名但是值undefined

如何查看对象的属性

Object.keys(obj)

console.dir(obj)查看自身+共有属性

obj.hasOwnProperty('toString')判断一个属性是自身的还是共有的

obj[‘key’]

obj.key //这里的key是字符串

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

直接赋值

  • let obj = {name:’frank’} //name是字符串
  • obj.name = ‘frank’ //name是字符串
  • obj[‘name’] = ‘frank’
  • obj[‘na’+‘me’]=‘frank’
  • let key=‘name’; obj[key]=‘frank’ //key 是变量

批量赋值

  • object.assign(obj,{age:18,gender:'man'})

修改或增加共有属性

  • 无法通过自身修改或增加共有属性(原型身上的)
 let obj = {},obj2={}
 obj.toString='xxx' //只会改在obj自身属性
 obj2.toString 还是在原型上
  • 强行修改原型属性(一般不建议修改原型)
 obj.__proto__.toString=''//不推荐
 Object.prototype.toString='xxx'

修改隐藏属性

  • 不推荐使用__proto__
  • 推荐使用Object.create
 let obj =Object.create(xxx)

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

'name' in obj 会查看自身以及原型身上的属性

obj.hasOwnProperty('name') 只会查看自身的属性