美文网首页
《JS 对象基本用法》

《JS 对象基本用法》

作者: Yandhi233 | 来源:发表于2021-09-08 22:42 被阅读0次

1. 声明对象

  • 对象的定义
    无序的数据集合;
    键值对的集合

  • 声明对象两种方法

     let obj = { 'name': 'frank', 'age': 18 }
     let obj = new Object({'name': 'frank'})
    
  • 注意细节
    键名是字符串,不是标识符,可以包含任意字符;
    引号可省略,省略之后就只能写标识符;
    就算引号省略了,键名也还是 字符串

2. 删除对象的属性

  • delete obj.xxxdelete obj['xxx']
    即可删除 obj 的 xxx 属性;
    请区分「属性值为 undefined」「不含属性名」
  • 不含属性名
    'xxx' in obj === false
  • 含有属性名,但是值为 undefined
    'xxx' in obj && obj.xxx === undefined
  • 注意 obj.xxx === undefined
    不能断定 'xxx' 是否为 obj 的属性

3. 查看对象的属性

  • 查看自身所有属性
    Object.keys(obj)
  • 查看自身 + 共有属性
    console.dir(obj)
    或者自己依次用 Object.keys 打印出 obj.__proto__
  • 判断一个属性是自身的还是共有的
    obj.hasOwnProperty('toString')
  • 考题
    let list = ['name', 'age', 'gender']
    let person = {
           name:'frank', age:18, gender:'man'}
    for(let i = 0; i < list.length; i++){
      let name = list[i]
      console.log(person[name])
    }
    //使得 person 的所有属性被打印出来
    

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

  • 直接赋值
    let obj = {name: 'frank'} // name 是字符串
    obj.name = 'frank' // name 是字符串
    obj['name'] = 'frank' 
    obj[name] = 'frank' // 错,因 name 值不确定
    obj['na'+'me'] = 'frank'
    let key = 'name'; obj[key] = 'frank'
    let key = 'name'; obj.key = 'frank' // 错
    //因为 obj.key 等价于 obj['key']
    
  • 批量赋值
    Object.assign(obj, {age: 18, gender: 'man'})
    

5. 修改或增加共有属性

  • 无法通过自身修改或增加共有属性
    let obj = {}, obj2 = {} // 共有 toString
    obj.toString = 'xxx' 只会在改 obj 自身属性
    obj2.toString 还是在原型上
    
  • 我偏要修改或增加原型上的属性
    obj.__proto__.toString = 'xxx'   // 不推荐用 __proto__
    Object.prototype.toString = 'xxx' 
    

一般来说,不要修改原型,会引起很多问题

6. 修改隐藏属性

  • 不推荐使用 proto
    let obj = {name:'frank'}
    let obj2 = {name: 'jack'}
    let common = {kind: 'human'}
    obj.__proto__ = common
    obj2.__proto__ = common
    
  • 推荐使用 Object.create
    let obj = Object.create(common)
    obj.name = 'frank'
    let obj2 = Object.create(common)
    obj2.name = 'jack'
    

规范大概的意思是,要改就一开始就改,别后来再改

相关文章

  • js对象及其方法

    1.对象MDN文档2.JS基础--JS对象及其基本用法3.JavaScript 对象所有API解析

  • JS 对象基本用法

    1.声明对象的两种语法 ES6新增了两种声明对象的方法,分别是let和const。 2.如何删除对象的属性 del...

  • JS 对象基本用法

    一、声明对象的两种语法 let obj = { 'name' : 'frank' , 'age' : 18} le...

  • js对象基本用法

    1.声明对象 定义:无序的数据集合、键值对的集合 写法 属性名:每个key都是对象的属性名(property) 属...

  • JS 对象基本用法

    1 声明对象的两种语法 2 如何删除对象的属性 3 如何查看对象的属性 Object.keys(obj) 查...

  • JS 对象基本用法

    对象的定义 对象是无序的数值集合或者键值对的集合 声明对象的语法 let object = { 'name' : ...

  • JS对象基本用法

    一、声明对象的两种方法(对象:无序的数据集合&键值对的集合) ·简易声明:let obj = { 'name' :...

  • JS对象基本用法

    与JS相关的七种数据类型以及五个falsy值 七种数据类型 : number、string、bool、symbol...

  • JS对象基本用法

    声明对象的两种语法 如何删除对象属性 如何查看对象的属性 查看自身所有属性 查看自身+共有属性 判断一个属性是自身...

  • JS 对象基本用法

    6种基本数据类型 null undefined string number boolean symobl 5种fa...

网友评论

      本文标题:《JS 对象基本用法》

      本文链接:https://www.haomeiwen.com/subject/yjebwltx.html