js对象

作者: 李诺哦 | 来源:发表于2017-12-06 23:38 被阅读1次

    首先创建如下对象

    var obj = {
      a: 2
    }
    
    obj.a  //2
    obj["a"]  //2
    

    第一种方式叫做属性访问,第二种方式叫做键访问,实际上它们访问的是同一个地方

    可计算属性名

    当需要用表达式来计算属性时,obj[""]这种属性访问词就可以派上用场了

    以下例子

    var a = "hello"
    
    var obj = {}
    
    obj[a+"c"] = "good"
    
    console.log(obj)  //{helloc: "good"}
    

    ES6的浅拷贝assign

    ES6的assign可以很轻松的实现浅拷贝

    var a = {
        hello: "world"  
    }
    
    var b = {
        c: "good"
    }
    
    var c = {
        hello: "hello"
    }
    
    var d = {
        a: a,
        b: b,
        c: c
    }
    
    var copyD = Object.assign({}, d)
    
    copyD.a === a  //true
    
    copyD.a === d.a  //true
    

    assign的原理是使用“=”操作符来赋值

    属性描述符

    ES5开始js的所有属性都具备了属性描述符
    以下例子

    var a = {
        x: 1
    }
    
    Object.getOwnPropertyDescriptor(a, "x")
    //{
        value: 1, 
        writable: true, 
        enumerable: true, 
        configurable: true
      }
    

    ES6数组遍历for of

    ES6增加了数组遍历的方法for...of

    如下例子

    let arr = [1, "good", function a(){
        console.log(a)
    }]
    
    for(let v of arr){
        console.log(v)
    }
    //1
      good
      ƒ a(){
          console.log(a)
      }
    

    注意:想要在Object对象使用for...of循环需要给你要操作的对象定义@@iterator

    相关文章

      网友评论

          本文标题:js对象

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