javascript方法過載簡單介紹

antzone發表於2017-04-03

本章節介紹一下js如何模擬實現函式過載效果。

在js中並沒有過載這個概念,這一點並不像c#這樣的語言,但是我們可以模擬實現。

關於過載這個概念,大家可以自行在網上查詢。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
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','softwhy.com');

相關文章