美文网首页
es6 对象 笔记

es6 对象 笔记

作者: xingkong_s | 来源:发表于2019-03-27 15:55 被阅读0次

    创建对象

    es5

    var a = new Object()
    var a = {}
    

    es6

    var a = Object.create(null)  //没有原型
    var a = Object.create(Object.prototype)   //等同于 var a = new Object()
    
    var b = {"xx":1}
    var a = Object.create(b) // b 是 a 的原型
    "xx" in b  //true xx 是 b  的key
    

    对象的key

    Object.keys(obj)
    Object.getOwnPropertySymbols( Symbols key) //获取对象的symbols key
    

    对象属性的缩写

    var a = "frank"
    var b = "jack"
    var c = {"a":a,"b":b}
    可以缩写为
    var c = {a,b}
    

    对象的动态属性名

    var a = "frank"
    var b = {  [a] : "xxxx"  } // var b = {"frank":"xxxx"}
    

    对象属性的get()set()

    var a = {
      _age:18,
      get age(){
        return a._age
      },
      set age(value){
        if(value>100){
          a._age = 100
        }else{
          a._age = value
        }
      }
    }
    //a.age 18
    //a.age = 1000 100
    

    对象的浅拷贝

    var a = {a:1,b:2}
    var b = a // b和a 是同一个对象 只是存了两个对象地址
    var b = Object.assign({},a)
    或者可以简写成
    var b = {...a}
    

    获取、变更 原型 Prototype

    创建一个新的可以继承prototype的对象 Object.create()
    获取一个对象的原型 Object.getPrototypeOf()


    对象的属性

    writable //是否可更改
    enumerable //是否可枚举 可否用for in 遍历
    (可迭代对象 可用 for of 遍历 例如Array)
    configurable //是否可以使用Object.defineProperty重新设置属性


    对象的属性描述器Object.getOwnPropertyDescriptor()

    //获取对象有什么属性
    Object.getOwnPropertyDescriptor(obj,"xx")
    

    设置一个对象的属性 Object.defineProperty()

    //一开始你忘了写,之后你想加
    //对已经定义的obj 想重新定义"xxx"属性
    Object.defineProperty(obj,"xxx",{
            value:"yyy",
            writable:false
    })
    

    Vue 使用Object.defineProperty()来实现data双向绑定


    undefined

    undefined
    不是关键字 关键字不可以重新声明
    是一个不可写的变量
    不是常量 常量不可第二次赋值

    相关文章

      网友评论

          本文标题:es6 对象 笔记

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