ES6 对象的扩展

1.属性的简洁标识方法

1)属性简写

var foo = ‘bar’;

var baz = {foo};

baz // {foo : foo}   不写顺序ing值,属性值等于属性名所代表的变量!

2)方法简写

{

          class(){            //简洁写法中属性名总是字符串,所以是关键字也无妨

                    return ....

          },

          data    :      function (){   

          }

}

2.属性名表达式

obj['a' + 'bc'] = 123         //ES6/ES5都可以使用

var obj = {

               'abc' :123, //ES6

               ['abc']:123 , //ES6

               abc:123 //ES6/ES5

}

注意:属性名表达式不能与简洁写法表达式同时使用

3.Object.is(a,b)用来比较两个值是否严格相等,(===,+0!= -0,NaN = NaN)

4.Object.assign()

Object.assign(target,resource1,resource2)将resource对象的所有可枚举属性全部复制到目标对象,如有同名后者覆盖前者。

应用:

为对象添加属性(这个的话,应该没必要用);

为对象添加方法

Objectassign(someClass.prototype,{

              someMethod(){

                 }

})

等价于SomeClass.prototype.someMethod= function(){..............}

克隆对象:{

function clone(origin){

          return  Object.assigmn({},origin)//只能克隆它本身的值,不能克隆他的继承值。

}

function clone(){

             let originProto = Object.getPrototypeof(origin);

             return Object.assign(Object.create(),origin)

}

5.Object.setPropotypeOf(),Object.getPrototypeof()

设置原型对象,获取原型对象

6.对象的扩展运算符

let{x,y,...z} = {x:1,y:2,a:3,b:4};

x//1

y//2

z//{ a:3,b:4 }(z属于Reset参数,reset参数不会复制继承远行对象的属性)

let z ={a:3,B:4}

z._proto_ = {c:5}

let n = {...z}

n //{a:3,B:4}只能复制自身的属性,不能复制原型上的属性

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.属性的简介表示法 const foo ='bar' const baz = {foo} baz //{foo:...
    yfsola阅读 1,592评论 0 0
  • 1. 属性的简介表示法 varfoo ='bar'; varbaz = {foo}; baz//{foo: "ba...
    ningluo阅读 2,166评论 0 0
  • 属性的简洁表示法 var birth = '2000/01/01'; ps: CommonJS API定义很多普通...
    娟子阅读 2,394评论 0 0
  • 鉴于es6的出现对象以及数组出现了一些新的写法所以在此总结以防忘记重点在对象上 简洁的书写 如果某个方法的值是一个...
    语目阅读 1,781评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,798评论 19 139