JavaScript函数重载
译者按: jQuery之父John Resig巧妙地利用了闭包,实现了JavaScript 函数重载 。 原文: JavaScript Method Overloading 译者: Fundebug 为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。 在一个业余项目中,我写了一个简单的 addMethod 函数,用于实现 函数重载(Method Overloading) 。而所谓 函数重载 ,就是函数名称一样,但是输入输出不一样。或者说,允许某个函数有各种不同输入,根据不同的输入,调用不同的函数,然后返回不同的结果。 addMethod 函数如下: // addMethod - By John Resig (MIT Licensed) function addMethod( object, name, fn){ var old = object[ name ]; object[ name ] = function( ){ if ( fn.length == arguments.length ) return fn.apply( this, arguments ); else if ( typeof old == 'function' ) return old.apply( this, arguments ); }; } 所谓 addMethod 函数