Как обрабатывать console.log и вывод ошибок в JavaScript? - PullRequest
0 голосов
/ 08 марта 2010

У меня есть конструктор, в котором есть ряд классов и функций - в каждой функции я проверяю, установлен ли параметр для отображения ошибки, и выводим ли он в таком случае. Как и при использовании встроенного, если. Проблема и вопрос не в том, чтобы сохранить две версии. Разве этот подход не мудр в том, что каждый IF должен оцениваться, добавляя, таким образом, время, необходимое для выполнения?

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

Как ты это делаешь? Любые указатели на то, где я могу найти советы по этому поводу? Заранее спасибо!

1 Ответ

1 голос
/ 08 марта 2010

Это как раз та проблема, в которой хорошо работает полиморфизм.

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();
...