2014-12-22 10 views
36

Douglas Crockford parla molto bene di "The Better Parts" di ES6. Tra le altre cose, ha encourages a move away from prototypal inheritance in favor of class free OOP.Douglas Crockford on Class OOP gratuito in JavaScript

Qui dice che ha smesso di usare new, Object.create e this, ma in realtà non spiegava un'alternativa. Qualcuno potrebbe spiegarmi come potrebbe essere?

+5

Ecco un articolo con alcuni buoni esempi: https://dannyfritz.wordpress.com/2014/10/11/class-free-object-oriented-programming/ –

+3

Se si va a circa [* 23: 00 *] (http://youtu.be/PSGEjv3Tqo0?t=23m) ti dice. – RobG

+2

@AaditMShah: Beh, è ​​difficile caratterizzare la sua posizione come "rinuncia alla programmazione orientata agli oggetti", quando lui stesso afferma che il suo attuale approccio è esattamente "programmazione orientata agli oggetti ** senza classe", e il suo intero approccio è basato su oggetti che incapsulano dati e comportamenti, il che suona molto simile alla programmazione orientata agli oggetti. Vedo anche poco in quella particolare presentazione, almeno, che indica che sta assumendo una posizione di forza in favore di uno stile funzionale di programmazione. –

risposta

38

Si dovrebbe guardare l'intero video, lo spiega al later in the video.

function constructor(spec) { 
    let {member} = spec, 
     {other} = other_constructor(spec), 
     method = function() { 
     // accesses member, other, method, spec 
     }; 

    return Object.freeze({ 
     method, 
     other 
    }); 
} 

E 'il revealing module pattern restituendo un frozen object.