Certaines des classes de niveau supérieur peuvent être instanciées et appelées en tant que fonction (par exemple, new Number() and Number()
, new Boolean() and Boolean()
, new Array() and Array()
).Comment faire en sorte qu'un constructeur de classe soit appelable en tant que fonction?
Habituellement, ceci est utilisé pour la conversion de type ou comme raccourci pour l'instanciation. Je voudrais être en mesure de faire la même chose:
public class Foo
{
public function Foo():void
{
//do something
}
}
public function Foo():Foo
{
//do some stuff;
return new Foo();
}
Est-ce possible? Si c'est le cas, comment?
EDIT pour clarifier:
Ce que je voulais faire était à l'origine pour créer une classe d'enregistrement pour interagir avec Flash/JavaScript et compatible multi-navigateur. Je voulais être en mesure d'utiliser le journal fonction comme un alias d'une méthode dans le journal classe. Cela m'a amené à me demander si je pouvais mettre en œuvre une fonction de moulage personnalisé juste parce que. J'ai maintenant réalisé que ce n'était pas possible, mais c'était amusant de jouer avec quand même.
il devrait fonctionner par défaut. ça s'appelle coulée –
@TiMeister J'espérais pouvoir intégrer une gestion personnalisée. Malheureusement, il semble que ce n'est pas le cas. – zzzzBov
juste curieux, mais qu'est-ce que vous cherchez à réaliser?est-ce plus que d'omettre le mot-clé 'new'? – gthmb