자 바스 크 립 트 대상 프로그램 설계(6):패키지
4218 단어 JavaScript각본
1.this 와 공유 변수
우선 this 키 워드 를 이해 해 야 합 니 다.아래 의 코드 를 보면 익숙해 져 야 한다.
function Person(name, age) {
this.name = name; //
this.age = age;
this.show = function() { //
alert("name: " + name + "; age: " + age);
}
}
var bill = new Person("Bill", 20);
alert(bill.name);
bill.show();
이곳 의 this 키 워드 는 없어 서 는 안 된다.앞 에 서 는 그냥 기억 하 라 고 했 는데 왜 그 랬 을 까?자 바스 크 립 트 의 대상 을 생각해 보 세 요.자 바스 크 립 트 의 대상 은 해시,
이렇게 보면 show 안의 name 과 age 는 키워드 가 없 지만 정상적으로 실행 하면 어떻게 된 일 인지 알 수 있 습 니 다.앞에서 이미 this 로 name 과 age 를 이 대상 bill 과 연결 시 켰 고 show 도 이 bill 변수 와 연결 되 었 기 때문에 자바 스 크 립 트 는 이 두 변 수 를 찾 을 수 있 습 니 다.
이렇게 보면 this 가 수식 하 는 것 은 모두 공유 변수 인 것 같다.사실은 그렇습니다.변 수 를 공유 변수 로 만 들 려 면 this 를 사용 할 수 있 습 니 다.위의 코드 에 있 는 name 과 age 는 모두 공유 변수 입 니 다.밖에서 aPerson.name 또는 aPerson.age 를 사용 하면 접근 할 수 있 습 니 다.
2.개인 변수
개인 변 수 를 어떻게 설명 합 니까?사실 앞에서 말 했 듯 이 자 바스 크 립 트 는 개인 적 인 역할 영역 이 없다.그럼 다음 코드 를 보 겠 습 니 다.
function Person(name, age) {
var name = name; //
var age = age;
var show = function() { //
alert("name: " + name + "; age: " + age);
}
}
var bill = new Person("Bill", 20);
alert(bill.name); // undefined
bill.show(); // error,
이 코드 는 앞 과 거의 같 습 니 다.속성 앞의 this 를 var 로 바 꾸 었 을 뿐 입 니 다.우 리 는 var 가 변 수 를 설명 하 는 데 쓰 인 다 는 것 을 안다.show 함수 와 bill.name 은 모두 정의 되 지 않 았 습 니 다!이게 어떻게 된 거 죠?
앞서 말 했 던 자 바스 크 립 트 의 new 과정 을 떠 올 려 보 자.name 과 age 는 모두 var 성명 을 사용 하기 때문에 자 바스 크 립 트 는 이 를 일반적인 변수 로 간주 합 니 다.이렇게 하면 구조 초기 화가 끝 난 후에 구조 함수 가 되 돌아 갑 니 다.변 수 는 역할 영역 을 초과 하여 접근 할 수 없습니다.자 바스 크 립 트 변수 역할 영역 을 사용 하여 개인 속성 을 모 의 한 것 이다.
3.정적 변수
정적 변 수 는 클래스 에 연결 되 어 있 습 니 다.서로 다른 대상 에 게 정적 변 수 를 공유 합 니 다.
Person.num = 0; //
function Person() {
this.show = function() {
alert("num: " + Person.num);
};
Person.num++;
}
var bill = new Person();
bill.show(); // 1
var tom = new Person();
tom.show(); // 2
bill.show(); // 2
자 바스 크 립 트 에 서 는 정적 속성 을 쉽게 추가 할 수 있 습 니 다.자 바스 크 립 트 의 대상 은 해시 이기 때문에 클래스 이름 뒤에 속성 이나 함 수 를 간단하게 추가 하면 됩 니 다.
4.개인 변수 와 공유 변수 에 접근
개인 변 수 를 방문 할 때 변수의 이름 만 사용 하면 됩 니 다.단,공유 변 수 를 방문 하려 면 this 키 워드 를 사용 해 야 합 니 다.
function Person(name, age) {
this.myName = name;
var myAge = age;
this.show = function() {
alert("show = name: " + this.myName + "; age: " + myAge);
}
var showAll = function() {
alert("showAll = name: " + this.myName + "; age: " + myAge);
}
}
var bill = new Person("Bill", 20);
bill.show();
여기 서 my Name 의 this 키 워드 를 제거 하면 속성 이 정의 되 지 않 은 오류 가 발생 합 니 다.
쉽게 말 하면 공유 변 수 를 설명 하기 위해 this 를 사용 해 야 합 니 다.var 를 사용 하여 개인 변 수 를 설명 합 니 다.그러나 자 바스 크 립 트 는 그렇게 간단 하지 않다.자 바스 크 립 트 는 스 크 립 트 언어 이기 때문에 우 리 는 그것 의 실행 효율 에 매우 관심 을 가 져 야 한다.자 바스 크 립 트 가 대상 을 대상 으로 디자인 한 최고의 실천 을 살 펴 보 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.