[关闭]
@Wangww0925 2019-08-26T07:43:16.000000Z 字数 1741 阅读 234

ES6中的对象

ES6


对象对于Javascript是非常重要的。在ES6中对象有了很多新特性。

判断对象是否存在某个元素 in

in是用来判断对象或者数组中是否存在某个值的。我们先来看一下用in如何判断对象里是否有某个值。

  1. let obj = {
  2. a: '123',
  3. b: 'abc'
  4. }
  5. console.log('a' in obj); // true
  6. console.log('c' in obj); // false

对象赋值【属性名和属性值同名简化、方法简化】

ES5赋值、方法

  1. let name = 'www';
  2. let age = 18;
  3. var obj = {
  4. name: name,
  5. age: age,
  6. skill: function (){
  7. console.log('web');
  8. }
  9. };
  10. console.log(obj); // {name: "www", age: 18}
  11. obj.skill(); // web

ES6赋值简化 【属性名与属性值同名】
ES5的写法麻烦,在ES6中允许把声明的变量直接赋值给对象,大大减少代码量,我们看下面的例子。

  1. let name = 'www';
  2. let age = 18;
  3. var obj = {name , age};
  4. console.log(obj); // {name: "www", age: 18}

ES6方法的简化

  1. var obj = {
  2. getName: ()=>console.log("13"),
  3. fun(){
  4. console.log("www")
  5. }
  6. }
  7. obj.getName(); // 13
  8. obj.fun(); // www

对象元素Key值构建

有时候我们会在后台取出key值,而不是我们前台定义好的,这时候我们如何构建我们的key值那。比如我们在后台取了一个key值,然后可以用[ ] 的形式,进行对象的构建。

  1. let key = 'skill';
  2. var obj = {
  3. [key]: 'web'
  4. }
  5. console.log(obj); // {skill: "web"}

注意: [key] 相当于 'skill', key是上面定义的变量


对象中元素自定义方法

对象方法就是把对象中的属性,用匿名函数的形式编程方法。

  1. let obj = {
  2. add: (a, b) => a + b
  3. }
  4. console.log(obj.add(1, 2)); // 3

判断对象值是否相等 Object.is()

对象的比较方法,以前进行对象值的比较,经常使用===来判断,比如下面的代码:

  1. let obj1 = {name: 'www'};
  2. let obj2 = {name: 'www'};
  3. console.log(obj1.name === obj2.name); // true

那ES6为我们提供了is方法进行对比。

  1. let obj1 = {name: 'www'};
  2. let obj2 = {name: 'www'};
  3. console.log(Object.is(obj1.name, obj2.name)); // true

区分=== 和 is方法的区别是什么,看下面的代码输出结果。

  1. console.log(+0 === -0); // true
  2. console.log(Object.is(+0, -0)); // false
  3. console.log(NaN === NaN); // false
  4. console.log(Object.is(NaN, NaN)); // true

这太诡异了,这要怎么记呐,===为同值相等,is()为严格相等。


合并对象 Object.assign()

操作数组时我们经常使用数组合并,那对象也有合并方法,那就是assgin( )。看一下具体的用法。

  1. let obj1 = {a: '123'};
  2. let obj2 = {b: 'abc'};
  3. let obj3 = {c: 'www'};
  4. let obj4 = Object.assign(obj1, obj2, obj3);
  5. console.log(obj1); // {a: "123", b: "abc", c: "www"}
  6. console.log(obj2); // {b: "abc"}
  7. console.log(obj3); // {c: "www"}
  8. console.log(obj4); // {a: "123", b: "abc", c: "www"}
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注