JS对象基本用法

103 阅读1分钟

声明对象

  • {}
  • new Object
let obj = {name:'dilireba',age:'20'}
let obj2 = new Object({name:'dilireba',age:'20'})

删除对象属性

  • delete obj['name'] (删除属性名)
  • delete obj.name (删除属性名)
  • obj.name = undefined (删除属性值)

查看对象属性

  • Object.keys(obj) 查看属性名
  • Object.values(obj) 查看所有值
  • Object.entries(obj) 查看[属性名,属性值]

修改、增加对象属性

  • 直接赋值
let obj = {name:'dilireba',age:'20'}
obj.gender = '男'
  • 批量赋值
Object.assign(obj,{shuxue:98,yingyu:66})
  • 原型修改
obj.__proto__.toString = 'asd'// 修改原型的属性值 //不推荐使用
Object.prototype.toString = 'qwe'// 修改原型的属性值 //不推荐使用
obj.__proto__ = Array.prototype  //修改obj的原型 // 不推荐使用
var person = Object.create({name : 'li'}) 
// 修改原型指向,但是name属性并非在person上

结果:

in和hasOwnProperty的区别

  • in obj是否可用该属性,在原型链中的也可以
  • hasOwnProperty 属性是否在自己中
let obj = {name : 'dilireba'}

'name' in obj
true
obj.hasOwnProperty('name')
true
'toString' in obj
true
obj.hasOwnProperty('toString')
false