2010-03-16 11 views
6

W Flex ActionScript można utworzyć nowy obiekt za pomocą konstruktora bez parametrów z lub bez (). Przykład:Czy jest wymagana() do wywołania konstruktora Flex ActionScript?

var array:ArrayCollection = new ArrayCollection() 

lub

var array:ArrayCollection = new ArrayCollection 

Czy jest jakaś różnica między tymi dwoma? Czy preferujesz jeden nad drugim?

+0

głosowało na twoje pytanie w górę ... dobry punkt. Oczywiście, jeśli w twoim konstruktorze są wymagane argumenty - AHBL. –

+6

Nawet jeśli nie jest to wymagane, dodaj je dla jasności :) –

+0

Czy istnieje punkt, w którym można zastosować konwencję do wstawienia "nowego" w konstruktorze. Jeśli kompilator może zrozumieć, że jest konstruktorem bez '()', to może to również zrozumieć bez 'nowego'. – Nishu

Odpowiedz

2

Myślę, że nie ma różnicy funkcjonalnie, ale lubię mieć() tylko z powodu konwencji.

0

Interesujący punkt. Do czasu twojego pytania nigdy nawet nie próbowałam przekazać klasy do "nowego" operatora bez zamknięcia, aby wskazać, że dzwonię do konstruktora. Po prostu próbowałem tego bez niego i działa, ale nie czułbym się komfortowo robiąc to w ten sposób.

-2

jeśli nie zrobi czegoś z konstruktora, to nawet nie trzeba iść tak daleko:

var array:ArrayCollection; 

byłoby zadeklarować zmienna dobrze.

Prawdopodobnie nie ma prawdziwej różnicy, ponieważ konstruktor jest prawdopodobnie magiczną metodą, która zostanie automatycznie wywołana, gdy zostanie wywołana klasa.

+0

To właśnie definiuje/deklaruje zmienną, nie tworzy instancji kolekcji ArrayCollection. Do momentu utworzenia zmienna będzie niezdefiniowana. – walpolea

+0

dzięki za informację walpolea. Poprawiłem moją odpowiedź. – invertedSpear

0

Nie znam żadnych różnic między tymi dwoma sposobami tworzenia obiektu, jednak konwencja skłania się ku użyciu (). Pomyśl o tym, kiedy tworzysz obiekt, który wymaga parametrów wysłanych do konstruktora var e:Event = new Event('EventType');, mając nawiasy okrągłe, nawet jeśli jest pusty, mówi, że nic nie zostaje przekazane.

Powiązane problemy