我有一个构造函数,其中包含一系列类和函数 - 在每个函数中,我检查param是否设置为显示错误,如果是,则输出。像这样使用内联if。问题和问题是不能保持两个版本,这种方法不明智,因为每个IF必须进行评估,从而增加了执行所需的时间?
debugSlide = (bag.debug==1)? console.log("item id =" + bag.itemId) : 0;
你是怎么做到的?关于我在哪里可以找到关于此的提示的任何指示?提前谢谢!
答案 0 :(得分: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();