javascript方法重载简单介绍

快乐打工仔 分类:实例代码

本章节介绍一下js如何模拟实现函数重载效果。

在js中并没有重载这个概念,这一点并不像c#这样的语言,但是我们可以模拟实现。

关于重载这个概念,大家可以自行在网上查询。

代码实例如下:

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 );
    }
  }
};
var UserInfo = function(){
  addMethod(this,"find",function(){
    console.log("没有参数");
  });
  addMethod(this,"find",function(name){
    console.log("传入一个参数:"+name);
  });
  addMethod(this,"find",function(name,value){
    console.log("传入了两个参数,一个叫 name="+name+" 一个叫 value="+value);
  });
};
var userinfo = new UserInfo();
userinfo.find();
userinfo.find('犀牛前端部落');
userinfo.find('antzone','pipipi.net');

回复

我来回复
  • 暂无回复内容