JS对象基本用法

69 阅读1分钟

声明对象

  • 规范写法
let obj=new Object({'name':'lee'})
  • 简写
let obj={'name':'lee'}

delete obj['name']
'name' in obj // false
obj.hasOwnProperty('name')  // false

Object.keys(obj)
console.dir(obj)
obj['name']
obj.name // 记住这里的 name 是字符串
obj[name]  // 记住这里的 name 是变量

改or增

  • 改自身 obj['name'] = 'jack'
  • 批量改自身 Object.assign(obj, {age:18, ...})
  • 改共有属性 obj.proto['toString'] = 'xxx'
  • 改共有属性 Object.prototype['toString'] = 'xxx'
  • 改原型 obj.proto = common
  • 改原型 let obj = Object.create(common)
  • 注:所有 proto 代码都是强烈不推荐写的

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

  • 'name' in obj是不区别该查询的属性是否是自身的属性,还是共有的属性
  • obj.hasOwnProperty('name')可以用来判断一个属性是自身的还是共有的
  • eg.
obj.hasOwnProperty('name')//true
obj.hasOwnProperty('toString')//false