2010-02-17 11 views
1

une rapide question probablement facile dont la réponse est probablement « meilleure pratique »Code Dashcode traduction

que je suis un tutoriel pour une application Web mobile sur mesure modèle Safari, et de changer les vues autour de ce code est utilisé:

function btnSave_ClickHandler(event) 
{ 
    var views = document.getElementById('stackLayout'); 
    var front = document.getElementById('mainScreen'); 
    if (views && views.object && front) { 
     views.object.setCurrentView(front, true); 
    } 
} 

Ma question concerne à peu près le if conditionnel. Que dit ce triplet, et pourquoi chacune de ces choses doit-elle être vérifiée avant que la vue puisse être changée? Est-ce que views.object teste juste pour voir si la variable views répond à la méthode object? Pourquoi est-ce important?

EDIT - C'est/était le principal point de cette question, et il ne regarde pas Javascript comme langue et comment if boucles fonctionnent, mais plutôt pourquoi ces 3 choses doivent spécifiquement à vérifier:

Sous quels scénarios views et front pourraient ne pas exister?

Je n'écris généralement pas mon code de façon redondante. Si le nom de ma table MySQL ne change pas, je vais juste dire UPDATE 'mytable' WHERE... au lieu de beaucoup plus bavard (et à mon avis, redondant)

$mytable = "TheSQLTableName"; 
if ($mytable == an actual table && $mytable exists && entries can be updated){ 
    UPDATE $mytable; 
} 

Alors que si le nom de la table (ou dans l'exemple JS , les noms de la vue) NE SONT PAS "codés en dur" mais sont à la place une entrée d'utilisateur ou autrement mutable, je pourrais corriger mon code comme l'a l'exemple DashCode. Alors, dites-moi, ces valeurs peuvent-elles "mal tourner" de toute façon?

Merci!

Répondre

1

Le if teste ces 3 pointeurs pour s'assurer qu'ils ne sont pas nuls. Un pointeur nul est 0 qui convertit en false. Si l'un de ces 3 pointeurs est 0 (nul), il ne tentera pas de les utiliser.

Je ne suis pas sûr de ce que déréférencer un pointeur null fait en Javascript mais c'est une erreur et peut provoquer une exception. Le si évite juste cette possibilité.