링크: 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
오버로딩과 오버라이딩의 차이  (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