2016-08-17 3 views
0

Dans le cas suivant:Comment l'analyseur analyse-t-il l'expression suivante: new init()?

function init() { return 1; } 

comment peut-analyseur Parse

new init(); 

?

Je veux dire pourquoi la fonction init() fonctionne avec l'opérateur new? Pourquoi la fonction n'a pas été invoquée indépendamment?

+0

vous devez faire quelques recherches de base commencer d'ici (http://stackoverflow.com/questions/4212149/init-function-in-javascript-and-how-it-works) – emotionlessbananas

+0

@AsteriskNinja: Je ne sais pas voir ce que ce poste a à voir avec la question. – Bergi

Répondre

0

Pourquoi la fonction n'a pas été invoquée indépendamment?

Tout simplement parce que c'est la règle. new, init et les parenthèses d'argument sont quatre jetons distincts, qui formeront ensemble un appel de constructeur. Si new n'est pas là, trois jetons formeront un appel de fonction normale.

Pour obtenir invoqué indépendamment, vous pouvez écrire new (init()) ou new (init())() (ne fonctionne pas bien sûr que init() ne retourne pas un constructeur).