본문 바로가기

프로그래밍관련/javascript

[펌] javascript method overloading

구글링을 통한...자료습득...잊어버릴까봐 퍼왔어요.
역시...필요하다고 생각되는 것들은...이미 만들어 져있네요.^^;

출처: http://webprog.yozmn.com/1457/19600

Ajaxian
에 좋은 내용이 올라왔네요..
메소드 오버로딩을 구현한 예제입니다.


  1. function addMethod(object, name, fn){
  2.     var old = object[ name ];
  3.     object[ name ] = function(){
  4.     if ( fn.length == arguments.length )
  5.        return fn.apply( this, arguments );
  6.     else if ( typeof old == 'function' )
  7.        return old.apply( this, arguments );
  8.    };
  9. }
  10.  
  11. // Now setup the methods
  12.  
  13. function Users(){
  14.   addMethod(this, "find", function(){
  15.     // Find all users...
  16.   });
  17.   addMethod(this, "find", function(name){
  18.     // Find a user by name
  19.   });
  20.   addMethod(this, "find", function(first, last){
  21.     // Find a user by first and last name
  22.   });
  23. }
  24.  
  25. // Now use the methods
  26. var users = new Users();
  27. users.find(); // Finds all
  28. users.find("John"); // Finds users by name
  29. users.find("John", "Resig"); // Finds users by first and last name
  30. users.find("John", "E", "Resig"); // Does nothing