美文网首页JavaScript
ES6系列 (七)对象字面量语法

ES6系列 (七)对象字面量语法

作者: Eastboat | 来源:发表于2019-10-11 23:52 被阅读0次

目标

  • 使用简写属性名称
  • 使用简写方法名称
  • 使用计算属性名称

问题

哪些部分是冗余的?

    const person={
        name:name,
        address:address,
        sayHello:function(){/*......*/},
        sayName:function(){/*......*/}
        sayAddress:function(){/*......*/}
    }

简写属性名称

//ES5
const message={text:text} //将属性text赋给text变量

//ES6
const message={ text }  //将属性text分配给名为text的变量

与解构结合使用

let {count} = stateManger.getState();  // 从转态管理器中检索出count
count+=amount;
stateManger.update({count})  //设置状态管理器中的count 

// 实际是{count:count} 第一行取出和第三行设置,这种对称性很优雅

简写方法名称

简写方法会被视为匿名函数,而不是命名函数,这意味着不能通过函数内部的名称来引用函数

 const fn={
    foo(n){
        if(n<=2) return 1;
        return foo(n-1) + foo(n-2)
    }
 }
 fn.foo(7)  //报错,foo未定义

上述问题只有在函数自引用的情况下,才会有关系,函数就像递归一样引用了自己

const person={
    sayHello:function sayHello(){
        console.log(123);
    }
}
person.sayHello(); //123

使用this解决这个问题

//this.foo在函数的上下文中调用,如果被独立开,就没用了
const fn={
    foo(n){
        if(n<=2) return 1;
        return this.foo(n-1) + this.foo(n-2)
    }
}
const {foo}=fn;
console.log(fn.foo(7));   //13
const fn2={foo};
console.log(fn2.foo(7));  //13
const fn3={f:foo};
console.log(fn3.f(7)); //this.foo is not a function

函数使用自我引用时,请不要使用简写方法名称

计算属性名称

计算属性允许在对象字面量上使用动态属性名称

const property='color';
const flower={
    [property]:'red'
}
console.log(flower.property); //undefined
console.log(flower.color); //red
console.log(flower.color); //red

相关文章

  • ES6系列 (七)对象字面量语法

    目标 使用简写属性名称 使用简写方法名称 使用计算属性名称 问题 哪些部分是冗余的? 简写属性名称 与解构结合使用...

  • ES6语法糖

    参考 重新认识ES6中的语法糖 ES6入门-let 和 const 命令部分 对象字面量 字面量提供一种简写,我的...

  • ES6语法糖

    对象字面量是指以{}形式直接表示的对象,比如下面这样: ES6 为对象字面量的语法带来了一些改进:包括属性/方法的...

  • 扩展对象的功能性.md

    对象扩展 对象类别 在ES6中,对象分为下面几种叫法。 普通对象 特异对象 标准对象 内建对象 对象字面量语法拓展...

  • ES6-对象字面量语法扩展

    对象字面量(Object Literals)是js中创建对象的一种方法,在ES6中通过如下语法,让对象字面量变得更...

  • 9.ECMAScript6(ES6)- ES6中的对象字面量

    1、ES5创建对象字面量方式 2、ES6创建对象字面量方式 3、es5 对象方法 4、es6 对象方法的简写 5、...

  • 对象解构

    《深入理解ES6》阅读随笔 在 ES6 中,对于解构对象做了一系列改进,使其用起来更加方面。 提取对象字面量:在 ...

  • ES6学习笔记二 (扩展对象的功能性、解构、Symbol)

    第四章 扩展对象的功能性 1. 对象字面量语法扩展 直接看例子 ES6中通过属性初始化的简写语法,可以消除这种属性...

  • ES6 对象的新功能与解构赋值介绍

    ES6 通过字面量语法扩展、新增方法、改进原型等多种方式加强对象的使用,并通过解构简化对象的数据提取过程。 一、字...

  • JavaScript 模式(三)

    JS字面量和构造函数 1.总体说明 尽量避免使用构造函数 按需创建对象方式,最适合选择字面量 2.字面量语法 对象...

网友评论

    本文标题:ES6系列 (七)对象字面量语法

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