2015-05-12 13 views
6

Mam krótkie pytanie. Jaki jest najczystszy i najprostszy sposób deklarowania prywatnych członków w klasach ES6?ES6 klasy składnia prywatnego członka

Innymi słowy, jak wdrożyć

function MyClass() { 
    var privateFunction = function() { 
    return 0; 
    }; 

    this.publicFunction = function() { 
    return 1; 
    }; 
} 

jak

class MyClass { 

    // ??? 

    publicFunction() { 
    return 1; 
    } 
} 
+0

http://stackoverflow.com/questions/27849064/how-to-implement-private-method-in-es-es6-class-w-traceur –

+0

Dzięki, Dan, to prawie odpowiada na moje pytanie –

Odpowiedz

4

To nie różni się do zajęć. Ciało funkcji konstruktora, po prostu staje się Ciałem constructor:

class MyClass { 
    constructor() { 
    var privateFunction = function() { 
     return 0; 
    }; 

    this.publicFunction = function() { 
     return 1; 
    }; 
    } 
} 

Oczywiście publicFunction może być również prawdziwy sposób jak w przykładzie, jeśli nie potrzebują dostępu do privateFunction.

Nie radzę sobie z tym specjalnie (jestem przeciwko własnościom pseudo privat z różnych powodów), ale byłoby to najprostsze tłumaczenie kodu.

+1

Teoretycznie, prawda prywatność będzie w ES7. –

+0

Prawdziwa prywatność przez składnię być może., Ale już możesz uzyskać prawdziwą prywatność poprzez WeakMaps. – loganfsmyth

Powiązane problemy