2010-03-08 1 views
0

나는 일련의 클래스와 함수를 포함하는 생성자를 가지고있다. 각 함수에서 param이 오류를 표시하도록 설정되어 있는지 확인하고 출력한다면 확인한다. 그렇다면 인라인 if를 사용하십시오. 이 쟁점과 질문은 두 가지 버전을 유지하기에는 부족합니다. 각 IF가 평가되어야하므로 수행하는 데 걸리는 시간이 늘어나는 점에서 현명한 방법이 아닌가?JavaScript에서 console.log 및 오류 출력을 처리하는 방법은 무엇입니까?

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

어떻게하면됩니까? 이 포인터를 어디서 찾을 수 있습니까? 미리 감사드립니다!

+0

if (console) console.log ('in debugmode'); –

답변

1

이것은 정확하게 다형성이 좋은 유형의 문제입니다.

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

굉장합니다. 감사합니다 - 나는 그것을 테스트 할 것입니다. –

관련 문제