JavaScript 역할 영역,폐쇄,대상 및 원형 체인 개념 및 용법 사례 요약
5657 단어 JavaScript역할 영역폐쇄 하 다대상원형 체인
1 JavaScript 변수 역할 영역
1.1 함수 역할 영역
블록 역할 도 메 인 이 없습니다.즉,역할 도 메 인 은
{}
으로 둘러싸 인 것 이 아니 라 그 역할 도 메 인 완성 은 함수 에 의 해 결정 되 기 때문에if /for
등 문장의 괄호 는 독립 적 인 역할 도 메 인 이 아 닙 니 다.앞에서 말 한 바 와 같이 JS 가 함수 에서 정의 한 부분 변 수 는 이 함수 내부 에서 만 볼 수 있 고 함수 역할 영역 이 라 고 합 니 다.
포 함 된 역할 영역 변수 검색 규칙:함수 에서 변 수 를 참조 할 때 JS 는 현재 함수 역할 영역 을 검색 합 니 다.찾 지 못 하면 상층 역할 영역 을 검색 하여 전역 역할 영역 까지 검색 합 니 다.
var value = 'global';
var f1 = function(){
console.log(v1); //global
};
f1();
var f2 = function(){
var v1 ='local';
console.log(v1); //local
};
f2();
문법 작용 역 규칙:함수 의 삽입 관 계 는 호출 할 때 결정 되 는 것 이 아니 라 호출 할 때 결정 되 는 것 이다.즉,삽입 관 계 는 문법 분석 을 할 때 결정 되 는 것 이지 실행 할 때 결정 되 는 것 이 아니다.
var v1 = 'global';
var f1 = function(){
console.log(v1);
}
f1(); //global
var f2 = function(){
var v1 = 'local';
f1();
};
f2(); //global
이 두 규칙 의 상호 작용 에 대해 함수 내 에서 어떤 위치 에서 정 의 된 부분 변 수 는 함수 에 들 어 갈 때 이미 정의 되 었 으 나 초기 화 되 지 않 았 습 니 다.즉,undefined 입 니 다.변수 가 할당 되 었 을 때 까지 초기 화 되 었 습 니 다.따라서 초기 화 되 지 않 은 변 량 에 접근 하면 undefined 의 설명 을 받 을 수 있 습 니 다.
var v1 = 'global';
var f = function(){
console.log(v1); //undefined
var v1 = 'local';
};
1.2 전역 역할 영역전역 작용 역 의 변 수 는 전역 대상 의 속성 으로 어떤 함수 에서 든 직접 접근 할 수 있 으 며 전역 대상 을 통과 할 필요 가 없 지만 전역 대상 을 더 하면 검색 효율 을 제공 할 수 있다.
다음 조건 을 만족 시 키 는 변 수 는 전역 역할 영역 에 속 합 니 다.
2.1 장식의 정의
function f1(){
//context define
function f2(){
//func define
};
return f2;
};
f2(); // f1 context
C/C++와 같은 비 함수 식 프로 그래 밍 언어 에서 도 함수 포인 터 를 정의 하고 되 돌 릴 수 있 지만,외부 함수 가 실행 이 끝 난 후 내부 함수 로 정 의 된 문맥 정 보 는 소각 되 고,패 킷 에 서 는 되 돌아 오 는 함수 가 저장 되 며,함수 로 되 돌아 오 는 문맥 정보 도 포함 되 어 있 습 니 다.(품사 역할 영역 에서 지원)또한 패 킷 을 되 돌려 준 후 문맥 정 보 는 따로 만들어 져 서로 독립 된 패 킷 인 스 턴 스 를 만 들 수 있 습 니 다.2.2 폐쇄 적 인 용도
패 킷 을 닫 는 데 는 두 가지 용도 가 있 습 니 다.하 나 는 포 함 된 리 셋 함 수 를 쉽게 실현 하 는 것 이 고,다른 하 나 는 대상 의 디 테 일 을 숨 기 는 것 입 니 다.
전자 에 대해 NodeJS 의 프로 그래 밍 스타일 은 문 제 를 설명 할 수 있 습 니 다.이 후 자 는 함수 내부 의 부분 변수 외부 에 서 는 볼 수 없 지만 방문 함 수 를 제공 하여 해당 하 는 부분 변 수 를 방문 하고 수정 하여 OO 패 키 징 의 도 를 실현 할 수 있 습 니 다.
3 개체
유형 을 바탕 으로 하 는 언어 에서 대상 은 클래스 에 의 해 예화 되 고 JS 는 원형 을 바탕 으로 하 는 시스템 이 며 대상 은 원형 복제 에 의 해 생 성 된다.
3.1 대상 의 생 성과 접근
JavaScript 의 Object 는 실제 적 으로 속성 으로 구 성 된 관련 배열 로 속성 은 이름과 값 으로 구성 된다.
new Object()
또는{}
로 대상 을 만 들 수 있 습 니 다.간단 한 대상 을 만 드 는 데 있어 서 대상 초기 화 기 를 사용 하여 대상 을 만 들 수 있 습 니 다.즉,{}
글자 의 액면가 로 대상 을 만 들 수 있 습 니 다.대상 의 속성 명 은''문자열'을 추가 할 수도 있 고 따옴표 도 추가 하지 않 을 수도 있 습 니 다.이 는 JS 에 있어 서 차이 가 없다.방문 대상 의 속성 을 알 때 문장 을 사용 할 수도 있 고 관련 배열['name']
을 사용 할 수도 있다.후자 의 장점 은 우리 가 대상 속성 명 을 모 를 때 변수 로 관련 배열 의 색인 을 할 수 있다 는 것 이다.3.2 구조 함수
우 리 는 또한 사용자 정의 구조 함 수 를 통 해 대상 을 생 성하 여 더 많은 대상 을 실례 화 할 수 있다.구조 함수 도 함수 입 니 다.우 리 는 대문자 함수 명 을 사용 하면 됩 니 다.함수 에서 구성원 변수,구성원 함수 등 을 정의 할 수 있 습 니 다.
3.3 문맥 대상
JS 에서 상하 문 대상 은 this 지침,즉 호출 된 함수 가 있 는 환경 입 니 다.그 역할 은 함수 내부 에서 호출 대상 자 체 를 인용 하 는 것 이다.this 의 등장 은 이전에 소 개 된 정적 역할 영역 에 영향 을 주 고 동적 인 내용 을 추가 합 니 다.
예 를 들 어 우 리 는 서로 다른 변 수 를 통 해 함 수 를 인용 하고 서로 다른 점 에서 문맥 을 호출 할 수 있다.
전달 및 귀속 상하 문
JavaScript 의 함 수 는
Call
와Apply
를 통 해 특정한 문맥 에 동적 으로 연결 할 수 있 습 니 다.컨 텍스트 를 영구적 으로 연결 하려 면
bind
함 수 를 사용 할 수 있 습 니 다.같은 함수 의 여러 번bind
은 효과 가 없습니다.
var person = {
name:'noname',
getName:function(){console.log(this.name); }
};
var bill = {name:'Bill'};
person.getName(); //noname
bill.getName = person.getName;
bill.getName(); //Bill
name = 'JavaScript';
func = person.getName;
func(); //JavaScript
3.4 원형대상 을 만 들 때 우 리 는 구조 함수 에서 일반 구성원 을 정의 하 는 것 이 아니 라 원형 으로 구성원 함 수 를 정의 해 야 한다.
다음은 원형 체인 을 소개 하 겠 습 니 다.
JS 에는 두 개의 특수 한 대상 이 있 습 니 다.Object 와 Function 은 모두 구조 함수 로 대상 을 만 드 는 데 사 용 됩 니 다.
Object.prototype 은 모든 대상 의 조상 이 고
Function.prototype
는 모든 함수 의 원형 으로 구조 함 수 를 포함한다.JS 의 대상 을 세 가지 로 나 눌 수 있 습 니 다.사용자 생 성 대상,구조 함수 대상,원형 대상 입 니 다.
모든 대상 중 하나
__proto__
속성 이 있 는데 이 대상 의 원형 을 가리킨다.구조 함수 대상 은 prototype 이 있 으 며,원형 대상 을 가리 키 며,이 구조 함 수 를 통 해 대상 을 만 들 때,새로 만 든 대상
__proto__
속성 은 구조 함수 의 prototype 속성 을 가리킨다.프로 토 타 입 대상 은 constructor 속성 이 있 으 며,이에 대응 하 는 구조 함 수 를 가리 키 고 있 습 니 다.
function Foo() {}
var obj = new Object();
var foo = new Foo();
참고 문헌:《Node.JS 개발 지침》
자 바스 크 립 트 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,,,javascript 대상 입문 강좌,JavaScript 오류 및 디 버 깅 기술 요약,JavaScript 데이터 구조 와 알고리즘 기술 총화과JavaScript 스 트 리밍 알고리즘 및 기술 총화.
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.