鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ es6 class里面能寫等號(hào)?

es6 class里面能寫等號(hào)?

背景:用的webpack+react一系列

這是我在寫react時(shí)發(fā)現(xiàn)的問題,class里面能寫等號(hào)賦值?即竟有下面的第二種操作?我想知道第二種操作為什么不報(bào)錯(cuò)

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>
    );
  }
}

難道說,第一種是第二種的簡(jiǎn)寫?

但是,我在babel在線編譯發(fā)現(xiàn),這會(huì)報(bào)錯(cuò)的

圖片描述

另外瀏覽器里類似的聲明類方法也會(huì)報(bào)錯(cuò)

圖片描述

回答
編輯回答
陪我終

加了=就成了類的實(shí)例屬性,不加的話是定義在原型上的方法

2017年7月9日 18:51
編輯回答
熟稔

基本類型可以,干嘛賦一個(gè) function 呢?

2017年6月19日 12:37
編輯回答
兮顏

實(shí)際上,這個(gè)算是個(gè)實(shí)驗(yàn)屬性,可以理解為不用手動(dòng)的在構(gòu)造器上為函數(shù)手動(dòng)綁定 this。

就像下面的兩種寫法,一定 程度上算是等價(jià)的

class Example {
    doSomething = () => {
        //  ...
    }
}
class Example {
    constructor() {
        this.doSomething = this.doSomething.bind(this);
    }

    doSomething() {
        //  ...
    }
}
2018年5月17日 18:22
編輯回答
若相惜

我看阮一峰的es6的書里面寫過這種寫法,只是一種提案可能在未來會(huì)實(shí)現(xiàn),這是給類添加實(shí)例屬性,之前只能在構(gòu)造函數(shù)中,this.a = 123 現(xiàn)在可以直接a = 123

2018年7月12日 23:27
編輯回答
扯機(jī)薄

這是實(shí)驗(yàn)性的屬性 參考

重新配置一下babel

2017年10月28日 08:24
編輯回答
茍活

那必須是可以的,只是需要配置babel。原來的函數(shù)類似:

function render(){
//do something
}

在es6中可以將函數(shù)進(jìn)行簡(jiǎn)寫:

render(){
//do something
}

render = ()=>{
 //do something
}
2018年5月6日 02:00
編輯回答
使勁操
let render =()=>{}
2018年6月6日 06:21