2010-03-16 7 views
6

In Flex ActionScript, un nuovo oggetto può essere istanziato tramite il costruttore senza parametri con o senza (). Esempio:È richiesto() per richiamare un costruttore Flex ActionScript?

var array:ArrayCollection = new ArrayCollection() 

o

var array:ArrayCollection = new ArrayCollection 

Esiste una differenza tra i due? Si preferisce l'altro?

+0

votato la tua domanda su ... buon punto. Naturalmente se ci sono argomenti richiesti nel costruttore - AHBL. –

+6

Anche se non è necessario, si prega di aggiungerli per chiarezza :) –

+0

C'è un punto per avere una convenzione per mettere 'nuovo' nel costruttore. Se il compilatore può capire che è un costruttore senza '()' allora può capire anche senza 'nuovo'. – Nishu

risposta

2

Penso che non ci sia alcuna differenza dal punto di vista funzionale, ma mi piace avere() solo per convenzione.

0

Punto interessante. Fino alla tua domanda non avevo mai nemmeno provato a passare una classe al "nuovo" operatore senza una chiusura per indicare che stavo chiamando il costruttore. L'ho appena provato senza e funziona, ma non mi sentirei a mio agio nel farlo in quel modo.

-2

se non la tua intenzione di fare qualsiasi cosa con il costruttore, quindi non è nemmeno bisogno di andare così lontano:

var array:ArrayCollection; 

sarebbe dichiarare la variabile più che bene.

Probabilmente non c'è alcuna reale differenza in quanto il costruttore è probabilmente un metodo magico che verrà chiamato automaticamente al richiamo della classe.

+0

Questo semplicemente definisce/dichiara la variabile, non crea un'istanza di un'ArrayCollection. Fino all'istanziata la variabile sarà indefinita. – walpolea

+0

grazie per l'informazione sulla walpolea. Ho corretto la mia risposta. – invertedSpear

0

Non conosco alcuna differenza tra questi due modi di creare un'istanza di un oggetto, tuttavia la convenzione si sposterà all'utilizzo di (). Pensa a quando istanzia un oggetto che richiede parametri inviati al costruttore var e:Event = new Event('EventType');, con le parentesi anche se lasciato vuoto ti dice che non viene passato nulla.