2010-03-08 3 views
0

J'ai un constructeur qui a une série de classes et de fonctions dedans - dans chaque fonction je vérifie si le param est réglé pour montrer l'erreur et la sortie si c'est le cas. Comme si en utilisant un inline si. Le problème et la question est de ne pas conserver deux versions: cette approche n'est-elle pas judicieuse dans la mesure où chaque FI doit être évaluée, ce qui ajoute au temps qu'il faut pour effectuer?Comment gérer console.log et sortie d'erreur en JavaScript?

debugSlide = (bag.debug==1)? console.log("item id =" + bag.itemId) : 0; 

Comment faites-vous cela? Des indications sur où je peux trouver des conseils à ce sujet? Merci d'avance!

+0

si (console) console.log ('dans le mode de débogage'); –

Répondre

1

C'est exactement le type de problème que le polymorphisme est bon.

var SomeObject = function(initialDebugger) 
{ 
    this.test = function() 
    { 
    alert('Test!'); 
    this.debugger.log('Executing SomeObject.test()'); 
    } 

    this.setDebugger = function(newDebugger) 
    { 
    this.debugger = newDebugger; 
    } 

    if ('undefined' == typeof initialDebugger) 
    { 
    initialDebugger = new SilentDebugger(); 
    } 
    this.setDebugger(initialDebugger); 
} 

var SilentDebugger = function() 
{ 
    this.log = function(){}   
} 

var FirebugDebugger = function() 
{ 
    this.log = function() 
    { 
    console.log.apply(window, arguments); 
    } 
} 

var sample = new SomeObject(); 

sample.test(); 
sample.setDebugger(new FirebugDebugger()); 
sample.test(); 
+0

Génial. Merci pour cela - je vais le tester. –

Questions connexes