在JavaScript中,对象是一个很重要的概念,开发过程中,我们肯定离不开对象的。ES6追求高效、简洁,这次标准制定也为对象带来了很大的福利……
let w='www' ;
let obj1={w};
let obj2={[w]:'b' };
let obj3={['w' +'s' ]:'c' };
let obj4={'mr chen' :'d' };
let obj5={fun(){}};
let obj6={['f' +'un' ](){}};
let
es6新标准中,对象增加了很多属性命名上的遍历规则,甚至于关键字也能成为属性名,我们习惯于es5的规则,刚开始也许不习惯es6的写法,但是用久了会发现真的很便利!
let obj={a:1 ,b:2 ,c:3 }
Object.keys(obj)
let obj={a:1 ,b:2 ,c:function(){}}
Object.values(obj)
let obj={a:1 ,b:2 ,c:function(){}}
Object.entries(obj)
let obj={a:1 ,b:2 ,c:function(){}}
Object.getOwnPropertyNames(obj)
es6新增的symbol、proxy、itreator使得js语言变得更复杂,同时也变得更强大,对象也随之更加深奥,以后的文章也会分别针对性写作
let obj={a:1 ,b:2 };
Object .is(obj,obj);
Object .is(obj,{obj});
Object .is({},{});
Object .is('1' ,1 );
Object .is(-0 ,0 );
Object .is(NaN ,NaN );
Object .is(NaN ,-NaN );
Object不是简单的比较,不等同于‘==’,接近但是也不同于‘===’,针对NaN和0,es6做出了一些调整.
let obj={a:1 ,b:2 };
Object.assin(obj,{c:3 });
let obj1={a:1 ,b:2 };
let obj2={a:'a' ,c:3 };
Object.assign(obj1,obj2);
let obj1={a:1 ,b:2 };
let obj2={a:'a' ,c:3 };
Object.assign({},obj1,obj2);
let arr=[1 ,2 ,3 ];
Object.asign(arr,['a' ]);
let arr1=[1 ,2 ,3 ];
let arr2=[,,,'a' ,'b' ,'c' ]
Object.asign([],arr1,arr2);
Object.asign()方法和jQuery里面的$.extend() 方法及其相似,语法结构可以如是写:Object.asign(target,obj1,obj2….),target为操作对象/数组,后面的参数都是源对象。在操作object时,操作对象与源对象,如果属性不重合则拼接返回,若属性重合,则后者覆盖前者,拼接返回;在操作array时,也可以将其看作对象,其属性则是没一项的索引index,可以通过空值占位进行数组与数组直接的拼接。
let obj={name:'wbiokr' };
let mthObj={sayName(){console.log(this .name)}};
obj.__proto__=mthObj;
obj.sayName();
es6标准引入了指针__proto__ 进行原型操作,除此,Object.setPrototypeOf()与Object.getPrototypeOf()也可以对对象原型进行操作