링크: http://ejohn.org/blog/javascript-method-overloading/


Overriding 기능찾다가 찾게 되었다. 나중에 써먹어야겠다.

참고로 존레식은 jQuery 만든 사람이다.


// 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 );

    };

}



posted by 뚱2
1. 오버로딩(OverLoading)

오버로딩(중복정의)이라는 것은 하나의 클래스 내에서 같은 이름을 가지는 메서드가
여러개 정의되는 것을 말합니다.
물론 생성자 뿐만 아니라 다른 메서드들도 오버로딩이 가능합니다.
이것은 컴파일시 컴파일러에 의해 각 메서드들이 구별되며 여기서 기준은 인자가
됩니다.

* 메서드 오버로딩의 특징은 다음과 같습니다.
  - 동일 클래스에서 메서드 이름을 재사용 할 수 있다. (객체지향의 특성)
  - 접근제한자는 동일하거나 동일하지 않아도 된다.
  - 리턴타입도 동일하거나 동일하지 않아도 된다.
  - 메서드 이름은 반드시 동일해야 한다.
  - 메서드의 매개인자들은 순서, 개수, 타입이 반드시 달라야 한다.


2. 오버라이딩(OverRiding)

부모 클래스에서 구현한 메서드와 동일한 헤더를 갖는 메서드를 정의하여 대체하는
개념을 의미합니다.
한마디로 메서드 재정의라 할 수 있습니다.

* 메서드 오버라이드의 특징은 다음과 같습니다.
  - 접근제한자는 달라도 되지만 부모클래스의 접근범위보다 좁으면 안된다.
  - 리턴타입은 동일해야한다.
  - 메서드 이름도 동일해야한다.
  - 메서드 매개인자의 타입, 순서, 개수 모두 동일해야 한다.
  - throws 예외 클래스 선언시 선언을 오버라이드 하지 않거나, 부모 클래스에서
   선언한
예외 클래스보다 상위 클래스로 선언하면 안된다.

'C/C++ > VC++ / MFC' 카테고리의 다른 글

상호 참조  (4) 2008.02.20
[Visual Studio 2005] warning C4996: 'strcpy'이(가) deprecated로 선언되었습니다.  (0) 2008.02.20
#pragma comment  (0) 2008.02.20
#pragma once  (0) 2008.02.20
#pragma pack  (0) 2008.02.20
posted by 뚱2