javascript 함수 와 대상 의 차이 와 관계

5769 단어 JavaScript
함수 대상 과 기타 내부 대상 의 관계
 
함수 대상 을 제외 하고 많은 내부 대상 도 있다. 예 를 들 어 Object, Array, Date, RegExp, Math, Error 등 이다.이 이름 들 은 실제 적 으로 하나의 유형 을 나타 내 며 new 연산 자 를 통 해 대상 을 되 돌려 줄 수 있다.그러나 함수 대상 은 다른 대상 과 달리 type of 로 함수 대상 의 유형 을 얻 었 을 때 문자열 'function' 을 되 돌려 줍 니 다. type of 는 배열 대상 이나 다른 대상 을 되 돌려 줍 니 다. 문자열 'object' 를 되 돌려 줍 니 다.다음 코드 는 type: of 의 서로 다른 유형의 상황 을 예시 합 니 다.
다음은 인용 세 션 입 니 다.
?
1
2
3
4
5
6
7 alert( typeof (Function))); alert( typeof ( new Function())); alert( typeof (Array)); alert( typeof (Object)); alert( typeof ( new Array())); alert( typeof ( new Date())); alert( typeof ( new Object()));
이 코드 를 실행 하면 앞의 네 개의 문 구 는 모두 "function" 을 표시 하고 뒤의 세 개의 문 구 는 "object" 를 표시 합 니 다. 이 를 통 해 new function 은 실제 적 으로 함수 로 돌아 가 는 것 을 알 수 있 습 니 다.다른 대상 과 는 크게 다르다.다른 유형의 Array, Object 등 은 new 연산 자 를 통 해 일반 대상 을 되 돌려 줍 니 다.함수 자체 도 하나의 대상 이지 만 일반적인 대상 과 차이 가 있 습 니 다. 이것 은 대상 구조 기 이기 때 문 입 니 다. 즉, new 함수 로 대상 을 되 돌 릴 수 있 습 니 다. 이것 은 앞에서 이미 소개 되 었 습 니 다.모든 type of 가 "function" 을 되 돌려 주 는 대상 은 함수 대상 입 니 다.이러한 대상 을 구조 기 (constructor) 라 고도 부 르 기 때문에 모든 구조 기 는 대상 이지 만 모든 대상 이 구조 기 는 아니다.
함수 자체 도 하나의 대상 인 만큼 그들의 유형 은 function 이 고 C + +, 자바 등 대상 언어 를 대상 으로 하 는 클래스 정 의 를 연상 시 키 며 Function 유형의 역할 을 추측 할 수 있 습 니 다. 그것 은 함수 대상 자체 에 방법 과 속성 을 정의 할 수 있 습 니 다. 함수 의 prototype 대상 을 통 해 Function 유형의 정 의 를 편리 하 게 수정 하고 확장 할 수 있 습 니 다.예 를 들 어 함수 형식 Function 을 확장 하여 method 1 방법 을 추 가 했 습 니 다. 팝 업 대화 상자 에 "function" 을 표시 하 는 역할 을 합 니 다.
다음은 인용 세 션 입 니 다.
?
1
2
3
4
5
6
7
8 Function.prototype.method1= function (){ alert( "function" );
} function func1(a,b,c){ return a+b+c;
} func1.method1(); func1.method1.method1();
마지막 문 구 를 주의 하 십시오: func 1. method1. mehotd 1 (). method 1 이라는 함수 대상 의 method 1 방법 을 호출 했 습 니 다.헷 갈 리 기 쉬 워 보이 지만 문법 을 자세히 살 펴 보면 명확 하 다. 이것 은 재 귀적 인 정의 이다.method 1 자체 도 하나의 함수 이기 때문에 함수 대상 의 속성 과 방법 을 가지 고 모든 Function 유형의 방법 확장 은 이러한 재 귀 성 을 가진다.
Function 은 모든 함수 대상 의 기초 이 고 Object 는 모든 대상 (함수 대상 포함) 의 기초 입 니 다.JavaScript 에서 모든 대상 은 Object 의 인 스 턴 스 입 니 다. 따라서 Object 라 는 유형 을 수정 하여 모든 대상 이 통용 되 는 속성 과 방법 을 가지 도록 할 수 있 습 니 다. Object 유형 을 수정 하 는 것 은 prototype 을 통 해 이 루어 집 니 다.
다음은 인용 세 션 입 니 다.
?
1
2
3
4
5
6
7
8
9 Object.prototype.getType= function (){ return typeof ( this );
} var array1= new Array(); function func1(a,b){ return a+b;
} alert(array1.getType()); alert(func1.getType());
위의 코드 는 모든 대상 에 getType 방법 을 추가 하 였 으 며, 이 대상 의 유형 을 되 돌려 주 는 역할 을 합 니 다.두 개의 alert 문 구 는 각각 "object" 와 "function" 을 표시 합 니 다.
함 수 를 매개 변수 로 전달 하 다
앞에서 함수 대상 의 본질 을 소 개 했 고 모든 함 수 는 특수 한 대상 으로 표시 되 어 하나의 변수 에 편리 하 게 할당 한 다음 에 이 변수 이름 을 통 해 함수 호출 을 할 수 있 습 니 다.하나의 변수 로 서 다른 함수 에 매개 변수 로 전달 할 수 있 습 니 다. 이것 은 앞에서 자 바스 크 립 트 이벤트 처리 메커니즘 에서 이미 이러한 용법 을 보 았 습 니 다. 예 를 들 어 아래 프로그램 은 func 1 을 매개 변수 로 func 2 에 전달 합 니 다.
다음은 인용 세 션 입 니 다.
?
1
2
3
4
5
6
7 function func1(theFunc){ theFunc();
} function func2(){ alert( "ok" );
} func1(func2);
마지막 문장에서 func 2 는 하나의 대상 으로 func 1 의 형 삼 theFunc 에 전달 되 었 고 func 1 내부 에서 theFunc 호출 을 진행 했다.사실상 함 수 를 매개 변수 로 전달 하거나 함수 값 을 다른 변수 에 부여 하 는 것 은 모든 이벤트 메커니즘 의 기초 이다.
예 를 들 어 페이지 를 불 러 올 때 초기 화 작업 이 필요 하 다 면 init 의 초기 화 함 수 를 정의 한 다음 window. onload = init 를 통 해문장 은 완 료 된 이 벤트 를 페이지 에 연결 해서 불 러 옵 니 다.이 init 는 함수 대상 입 니 다. window 의 onload 이벤트 목록 에 가입 할 수 있 습 니 다.
함수 (방법 Function) 는 js 작업 과정 에 대한 패 키 징 입 니 다. 나중에 같은 과정 을 조작 하고 해당 하 는 함수 (방법) 만 호출 하면 됩 니 다.대상 역시 js 코드 에 대한 패키지 이지 만 대상 은 함수 (방법) 를 패키지 할 수 있 습 니 다.예 를 들 어 특정한 함수 (방법) 를 모두 특정한 대상 에 밀봉 한다.이렇게 하면 시스템 관리 호출 함수 (방법) 를 사용 할 수 있다.

좋은 웹페이지 즐겨찾기