美文网首页
(二)12.对象扩展19-08-09

(二)12.对象扩展19-08-09

作者: 你坤儿姐 | 来源:发表于2019-08-09 14:43 被阅读0次
    • 简洁表示法
    {
      //简洁表示法
      let o=1;
      let k=2;
      let es5={
        o:o,
        k:k
      };
      let es6={
        o,
        k
      };
      console.log(es5,es6);
    
      let es5_method={
        hello:function(){
          console.log('hello');
        }
      };
      let es6_method={
        hello(){
          console.log('hello');
        }
      }
      console.log(es5_method.hello(),es6_method.hello());
    }
    

    打印结果:
    {o: 1, k: 2}k: 2o: 1__proto__: Object
    {o: 1, k: 2}k: 2o: 1__proto__: Object
    hello
    hello
    undefined undefined

    • 属性表达式
    {
      // 属性表达式
      let a='b';
      let es5_obj={
        a:'c',
        b:'c'
      };
      let es6_obj={
        [a]:'c'  
      };
      console.log(es5_obj,es6_obj);
    }
    

    打印结果:


    屏幕快照 2019-08-09 13.58.29.png
    • Object新增API
    {
      //Object is方法
      //判断字符串是否相等,is方法和===是一样的
      console.log('字符串',Object.is('abc','abc'),'abc'==='abc');
      console.log('数组',Object.is([],[]),[]===[]);
      //两个数组虽然是空,但指针引用的是不同的地址 严格意义上并不相等
    
      //拷贝  这个拷贝是浅拷贝  只拷贝对象自身的属性如果这个对象还有继承不拷贝继承属性 同事也不会拷贝不可枚举的属性
      console.log('拷贝',Object.assign({a:'a'},{b:'b'}));//拷贝后合并成一个对象
      //entries
      let test={k:123,o:456};
      for (let [key,value] of Object.entries(test)){
        console.log([key,value]);
      }
    }
    

    打印结果:
    字符串 true true
    数组 false false
    拷贝 {a: "a", b: "b"}
    (2) ["k", 123]
    (2) ["o", 456]

    • 扩展运算符

    相关文章

      网友评论

          本文标题:(二)12.对象扩展19-08-09

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