Skip to content

Latest commit

 

History

History
92 lines (69 loc) · 1.92 KB

06.js对象基本用法.md

File metadata and controls

92 lines (69 loc) · 1.92 KB

JS 对象基本用法

1、声明对象的两种语法

1.标准写法:

let obj = new Object({'name': 'frank'})

2.程序员偷懒写法

let obj = { 'name': 'frank', 'age': 18}

注意: 常量作属性名:

  1. 就算省略引号,键名也是字符串
  2. 属性名会自动变成字符串(1e2 ,.234)
  3. Object.key(obj) 可以获得所有的 key

2、删除对象的属性

语法:

delete obj.xxx delete obj['xxx']

判断是否含有该属性名

'xxx' in obj === true (false)

3、查看对象的属性

  1. 查询自身所有属性

     Object.keys(obj)
  2. 查询自身+共有属性

    console.dir(obj)
  3. 判断一个属性属于自身还是共有属性

    obj.hasOwnProperty('toString')
  4. 两种查看属性的方法:

    中括号法: obj['key']

    点语法: obj.key

    注意: obj[name] 里面的 name 是变量

4、修改或增加对象的属性

  1. 直接赋值

    let obj = {'name':'frank'}
    obj.name = 'fuck'//obj = {'name':'fuck'}
    obj.age = 18;//obj = {'name':'fuck',age:18}
    //注意:obj.['name']===obj.name
    //obj[name] 错!错!!错!!!
  2. 批量赋值

    Object.assign(obj, {age: 18, gender: 'man'} 
  3. 改共有属性

    obj.__proto__['toString']= 'fuck'
    //不推荐 
    Object.prototyoe['toString']='fuck'
  4. 改原型

    obj.__proto__= 'common'
    //不推荐 
    let obj=Object.create(common)

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

'name' in obj是判断自身+共有属性是否存在的 true表示存在,false表示不存在

obj.hasOwnProperty('name')是判断该属性是自身还是共有的,true 表示是自身属性,false表示自身属性没有