JS 对象基本用法

152 阅读1分钟

声明对象的两种语法

  1. let obj = new Object({'name': 'zhangsan', 'age': 18}) 标准写法
  2. let obj = {'name': 'zhangsan', 'age': 18} 简写法

细节知识

  • 奇奇怪怪的东西都会变成字符串,如图所示

  • 如何把变量作为属性值 let p = 'name' let obj = {[p]: 'zhangsan'}, 此时, 属性名为'name'

但 let obj = { p: 'zhangsan'} 这样的写法, 属性名为 'p'

如何删除对象的属性

  • delete obj.xxx
  • delete obj['xxx']

如何查看对象的属性

  • obj.xxx
  • obj.['xxx']

ps : 如果使用obj[xxx]去查看对象的属性时,JS会先去对xxx求值,再把x带入去查找属性,例如

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

  • 直接赋值,例如

let obj = {'name': 'zhangsan'} 或者是

obj.name = 'zhangsan' 又或者是

obj['name'] = 'zhangsan' 还可以

obj['na' + 'me'] = 'zhangsan'

  • 批量赋值

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

  • 修改隐藏属性 直接上例子

如上图所示,可以使用 Object.create()来修改隐藏属性。 另外,也可以直接 obj.__proto__ = common来直接修改,但不推荐

in 运算符和 Object.hasOwnProperty 方法有什么区别?

hasOwnPropert方法返回值是一个布尔值,指示对象自身属性中是否具有指定的属性,这个方法会忽略掉那些从原型链上继承到的属性。 而in运算符不会忽略掉其从原型链继承来的属性

例如: