声明对象的两种语法

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

注意:如何用变量做属性名

  1. let a = 'xxx'
  2. var obj ={
  3. [a] : 123
  4. }/这样写[a]。而 a:123则表示key'a'

如何删除对象的属性

delete obj.xxx或delete obj[‘xxx’]

注意:obj.name = undefined只是删除属性值,属性名还在

‘xxx’ in obj 可以查询这个属性有没有被删除

如何查看对象的属性

中括号语法:obj[‘key’]——-例如obj{‘name’]
点语法:obj.key——-例如obj.name

注意:
obj.name等价于obj[‘name’]———{‘name’]是字符串
obj.name不等价于obj[name]———[name]是变量

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

修改或增加属性

直接赋值:

  1. let obj = {'name' : 'frank'}
  2. obj.name = 'frank'
  3. obj['name'] = 'frank'

批量赋值:

  1. Object.assign(obj,{age : 18,name : 'frank'})

修改或增加共有属性

无法通过自身修改或增加共用属性

  1. let obj ={}
  2. let obj2 = {}
  3. obj.toString = 'xxx'//得出的结果,obj的toString变成了xxx,但是obj2的还在原型上。只改变了自身的toString

偏要修改或增加原型上的属性

  1. obj.__proto__.toString = 'xxx'//不推荐使用
  2. Object.prototype.toString = 'xxx'//使用这种
  3. 但是,一般不推荐修改原型,会引发很多问题

修改隐藏属性

不推荐使用

  1. let obj = {'name' : 'frank'}
  2. let common = {kind : 'human'}
  3. obj.__proto__ = common

推荐使用

  1. let obj = Object.create(common)//创建以common为原型的obj
  2. obj.name = 'frank'//往obj里面加东西