Qual è una funzionalità simile in JavaScript che assicura che l'oggetto abbia dati X prima di intraprendere qualsiasi azione?

0

Se java / C # / etc si potrebbe fare qualcosa come creare un costruttore con un parametro, il parametro è la cosa su cui il resto dell'oggetto può agire. Come si fa in JavaScript? Sto cercando di capire quale sia la migliore pratica con JavaScript per fare qualcosa di simile a questo C # / Java Object.

public class Blagh{

    public var ThingToActOn;  // Appropriate get & set methods here. 

    public new Blagh(variable ThingForObjectToActOn) {
        this.ThingToActOn = ThingForObjectToActOn;
    }
}

Stavo pensando qualcosa di simile in JavaScript, ma sembra che mi manchi qualcosa. Sono anche consapevole che New in JavaScript è disapprovato per una serie di motivi, ma non sono sicuro di quale sia la soluzione migliore altrimenti.

var Symphonize = function(generation_specification){
    this.gen_spec = generation_specification;
}

Symphonize.prototype.act_on_object = function () {

    // Do actions here on the generation_specification value.

    return this.gen_spec;
}

blu = new Symphonize({"gen":"stuff"});
    
posta Adron 03.01.2014 - 04:28
fonte

1 risposta

2

La tua soluzione funziona, ma rompe l'incapsulamento. Puoi usare il fatto che il tuo oggetto è una funzione per lavorare con variabili locali invece di proprietà.

La scrittura in questo modo ti consente di mantenere la proprietà privata:

function Symphonize(generationSpecification){
    this.actOnObject = function(){
        // do stuff
        return generationSpecification;
    }
}

blu = new Symphonize({ gen: "stuff" });

Devi tenere a mente, tuttavia, che actOnObject verrà ridefinito per ogni nuovo Symphonize.

    
risposta data 03.01.2014 - 14:11
fonte

Leggi altre domande sui tag