2010-02-27 5 views
0

Disons que j'ai fonction comme ci-dessousappelez compatibilité future fonction javascript sur tous les navigateurs?

function doSomethingNow(){ 

    callSomethingInFutureNotExistNow(); 
} 

au moment doSometingNow() est créé callSomethingInFutureNotExistNow() n'existe pas encore. Il sera créé dans le futur, sur firefox, cela ne montre aucune erreur sur firebug. Ce type de fonction sera-t-il compatible sur tous les navigateurs sans erreur de lancement?

+0

il sera tout problème de rendu sur les anciens navigateurs? ou un navigateur de téléphone portable? une erreur sera lancée? – cometta

+0

Non. S'il y en aura, ce sera parce que vous avez "oublié" de déclarer "callSomethingInFutureNotExistNow" avant d'appeler "doSomethingNow". –

Répondre

1

Depuis javascript n'est pas compilé vous ne devriez jamais recevoir d'erreurs avec le code que vous avez publié en supposant que vous n'appelez pas doSomethingNow() avant que callSomethingInFutureNotExistNow est déclaré.

Pour être sûr cependant, vous voudrez peut-être faire un peu de nulle vérification

function doSomethingNow(){ 

    if (callSomethingInFutureNotExistNow) { 
    callSomethingInFutureNotExistNow(); 
    } 
} 

Ou si vous voulez être vous pouvez encore plus stricte faire la vérification des types comme celui-ci

function doSomethingNow(){ 

    if (typeof(callSomethingInFutureNotExistNow) === 'function') { 
    callSomethingInFutureNotExistNow(); 
    } 
} 
+0

Alors, est-ce que vous pouvez utiliser quelque chose comme ça? sans casser les navigateurs? Je ne veux pas que le navigateur demande des erreurs lors du rendu page – cometta

+0

Tout dépend de quand le doSomethingNow est appelé par rapport à quand callSomethingInFuture est déclaré, donc je ne dirai jamais jamais. Pour être en sécurité, utilisez un de mes contrôles de sécurité. – bendewey

+0

sera-t-il un problème de rendu sur les anciens navigateurs? ou un navigateur de téléphone portable? une erreur sera lancée? – cometta

Questions connexes