为了账号安全,请及时绑定邮箱和手机立即绑定

es6 class里面能写等号?

es6 class里面能写等号?

守着星空守着你 2019-02-27 21:27:11
背景:用的webpack+react一系列这是我在写react时发现的问题,class里面能写等号赋值?即竟有下面的第二种操作?我想知道第二种操作为什么不报错import React, {Component} from 'react';export default class RefundDetails extends Component {  render(){    return (     <div>121221</div>    );  }}import React, {Component} from 'react';export default class RefundDetails extends Component {  render=()=>{    return (     <div>121221</div>    );  }}难道说,第一种是第二种的简写?但是,我在babel在线编译发现,这会报错的另外浏览器里类似的声明类方法也会报错
查看完整描述

3 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

实际上,这个算是个实验属性,可以理解为不用手动的在构造器上为函数手动绑定 this。


就像下面的两种写法,一定 程度上算是等价的


class Example {

    doSomething = () => {

        //  ...

    }

}

class Example {

    constructor() {

        this.doSomething = this.doSomething.bind(this);

    }


    doSomething() {

        //  ...

    }

}


查看完整回答
反对 回复 2019-03-04
?
桃花长相依

TA贡献1860条经验 获得超8个赞

这是实验性的属性 参考

重新配置一下babel


查看完整回答
反对 回复 2019-03-04
?
慕森卡

TA贡献1806条经验 获得超8个赞

那必须是可以的,只是需要配置babel。原来的函数类似:


function render(){

//do something

}

在es6中可以将函数进行简写:


render(){

//do something

}


render = ()=>{

 //do something

}


查看完整回答
反对 回复 2019-03-04
  • 3 回答
  • 0 关注
  • 920 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号