2016-03-21 156 views
0

我見過的成員變量在ES6聲明如下聲明成員變量的

export class MyClass 
{ 
    x = null; 

    constructor() { 
     this.x = 1; 
    } 

    write() { 
     console.log(this.x); 
    } 
} 

和巴貝爾似乎罰款transpile它。

這是一種聲明成員變量的有效方法嗎?

+1

JS中沒有「成員變量」這樣的東西。你所看到的不是ES6,而是ES8的一個實驗性功能提案。不要使用它。 – Bergi

回答

2

這是ES Class Fields & Static Properties的建議的一部分。 它支持babeljs,與此plugin。 這是一個babel stage-1插件,所以如果你使用的是stage-1或者stage-0,這是支持的。

+0

謝謝!我不知道那件事 –

2

我不相信這是正確的。至少,MDN沒有提及任何這樣的語法。

至於你的例子,讓我們逐行解決它。

class MyClass { // Class declaration, all good here 
    x = null; // I assume you're telling javascript that the variable x exists? 

    constructor() { 
     this.x = 1; // You do that here just fine. 
    } 

    write() { 
     console.log(this.x); // And here we use the variable, after the constructor ran 
    } 
} 

我在單獨聲明成員變量時看不到任何值。你在構造函數中創建它。這應該是所有你需要的