학습 노트 1:자바 script 대상 프로 그래 밍 대상 구성원 에 대한 정의 분석
6614 단어 Javascript대상 을 향 하 다대상 멤버
순서:
자 바스 크 립 트 를 처음 접 했 을 때 이 언어 는 좀 요령 이 없다 고 생각 했 습 니 다.이 건 너무 배우 기 어 려 운 것 같 습 니 다.규범 도 없고 제대로 된 매 뉴 얼 도 없 었 습 니 다.그리고 html,dom,css 와 접촉 하기 도 했 습 니 다.더욱 엉망 이 었 습 니 다.코드 가 독성 도 떨 어 졌 습 니 다.과정 을 향 해 겨우 알 아 볼 수 있 었 습 니 다.대상 을 대상 으로 하 는 코드 를 보 는 것 은 컵,각종 괄호 입 니 다.나중에 ajax 를 알 게 되 었 습 니 다.jquery 를 알 게 되 었 습 니 다.많은 웹 효 과 는 자바 script 으로 썼 다 는 것 을 알 게 되 었 고 점점 호감 이 생 겼 습 니 다.bd 에 와 서 자바 script 과 phop 의 절반 을 쓴 후에 야 자바 script 의 강력 함 과 유연성 을 알 게 되 었 습 니 다.과 을 본 후에 바로 그녀의 유연성 때문에 그녀의 위대 함 을 만 들 었 습 니 다.그 다음 에 저 는 자 바스 크 립 트 의 일부 내용 을 기록 하고 한편 으로 는 자신의 인상 을 깊 게 하 며 다른 한편 으로 는 공유 라 고 할 수 있 습 니 다.
1.공유 멤버
우 리 는 모두 자바 script 에서 만물 이 대상 이라는 것 을 알 고 있 기 때문에 하나의 대상 과 공유 구성원 을 정의 하 는 것 이 가장 간단 하 다.
var obj = {
aa:"I'm public"
}
그러나 이 대상 은 빈 껍데기 일 뿐 자바 든 C++/C\#에서 대상 은 구조 함수 가 있 는데 어떻게 대상 을 정의 할 때 그의 구조 함 수 를 동시에 정의 할 수 있 습 니까?자바/C+에서 구조 함 수 는 대상 의 구성원 함수 이지 만 자바 script 에서 우 리 는 하나의 사 고 를 바 꿔 야 합 니 다.만약 에 구조 함수 만 정의 한다 면:
var obj = {
aa:"I'm public",
_construct:function(){
}
}
우리 가 new 라 는 대상 에 있 을 때 구조 함 수 는'자동'으로 실행 되 지 않 습 니 다.그래서 전에 말 한'만물 은 대상'을 생각해 보 세 요.어떻게 한 대상 이 정의 할 때 함 수 를 실행 하 게 합 니까?그것 은 함수 대상 을 정의 하 는 것 입 니 다:)
var obj = function(mem1){
this.aa = mem1;
};
이렇게 해서 우 리 는'구조 함수'를 가 진 대상 을 정의 했다.2.공유 방법
공유 방법 을 정의 하 는 방식 은 공유 구성원 을 정의 하 는 방식 과 마찬가지 로 이 구성원 은 하나의 함수 일 뿐 string 이나 다른 유형의 대상 이 아 닙 니 다.
var obj = fucntion(mem1){
this.a = mem1;
this.getA = function(){
return this.a;
}
};
3.사유 구성원 과 사유 방법우 리 는 자바 script 에 대상 의 개념 이 있 지만'사유'라 는 개념 이 없다 는 것 을 알 고 있 습 니 다.즉,우 리 는 자바/C++처럼 키워드 private 를 사용 하여 개인 구성원 을 정의 할 수 없습니다.구성원 이 라면 공유 입 니 다.그러면 어떻게 개인 구성원 을 실현 합 니까?우 리 는 먼저 이 문 제 를 고려 합 니 다.무엇이 개인 구성원 입 니까?개인 구성원 은 대상 의 외부 에서 직접 방문 할 수 없 는 구성원 입 니 다.예 를 들 어 대상 obj 입 니 다.만약 에 우리 가 obj.a 를 직접 인용 할 수 있다 면 그 는 공유 입 니 다.만약 에 obj 를 인용 하면.b.오 류 를 제시 하거나 이상 을 던 지면b.바로 사유 입 니 다.개인 구성원 을 실현 하 는 것 은 바로 이러한 외부 에서 그의 특정한 구성원 을 방문 할 수 없고 그의 구성원 함수 로 만 접근 할 수 있다 는 것 을 실현 하 는 것 이다.1 에서 이미 말 했 습 니 다.우 리 는 현재 함수 대상 을 정의 하고 있 습 니 다.그러면 함수 의 외부 에서 그의 특정한 구성원 을 방문 할 수 없고 그의 구성원 함수 로 만 접근 할 수 있 습 니 다.함수 의 멤버 함수.이게 무슨 소리 야?우 리 는 함수 내부 에서 정 의 된 함수 라 는 표현 을 바 꾸 었 다.그러면 우리 가 실현 하고 자 하 는 것 은 함수 의 외부 에 서 는 접근 할 수 없 지만 함수 내부 에서 정 의 된 함수 가 접근 할 수 있 는 특정한 변 수 를 실현 하 는 것 입 니 다.자바 script 특성 을 아 는 개발 자 는 흑체 의 이 말 을 어디서 본 것 처럼 느껴 야 합 니 다.맞습니다.이것 이 바로 폐쇄 적 인 개념 입 니 다.
폐쇄 적 인 개념 에 대해 서 는 여기 서 설명 하지 않 겠 습 니 다.이 개념 은 하나의 주제 로 말 할 수 있 습 니 다.너무 복잡 합 니 다.이나 구 글 을 볼 수 있 습 니 다.
위의 생각 이 있 으 면 위의 대상 정 의 를 개조 할 수 있다.
var obj = function(){
//private member
var _b;
//public member
this.a = mem1;
//constructor
_b = mem2;
//private method definations
function _getB(){return _b};
//public method definations
this.getA = function(){return this.a;};
this.getB = function(){return _getB();};
this.setA = fucntion(){……};
this.setB = fucntion(){……};
}
국부 변수 때문에b 는 함수 역할 영역 에서 정의 되 기 때문에 함수 대상 외부 에 접근 할 수 없습니다.마찬가지 로"부분"함수getB 도 함수 역할 영역 에서 정 의 된 것 으로 함수 대상 외부 에 접근 할 수 없습니다.그러나 같은 함수 역할 영역 에서 정 의 된 함수 getA 와 getB 는 패 킷 을 닫 는 역할 로 대상(함수)이 정의 되 었 을 때 대상(함수)의 코드 가 실행 되 었 더 라 도 부분 변수(구성원) 에 접근 할 수 있 습 니 다.b 와 부분 변수(함수)getB 는 개인 구성원 과 개인 함 수 를 실현 합 니 다.4.정적 변수 와 정적 함수
맞습니다.'정적 변수 와 정적 함수'입 니 다.제 가 이곳 을 보 았 을 때 도 놀 랐 습 니 다.패 킷 을 닫 고 개인 적 인 것 을 실현 하 는 것 은 그만 입 니 다.어떻게 정적 변수 와 정적 함 수 를 만들어 야 합 니까?javascript 에 익숙 한 사람들 은 모두 원형(prototype)의 개념 을 알 고 있 습 니 다.제 가 보기 에는 원형 은 클래스 속성 과 클래스 방법 과 유사 하지만 그 는 운행 기간 에 임의로 바 꿀 수 있 습 니 다.여기 서 javascript 에서 정적 변수 와 정적 함 수 를 실현 하 는 것 을 소개 합 니 다.
개인 구성원 과 개인 적 인 방법 에서'구성원'을 함수 역할 영역 에 정의 하여 접근 을 제한 할 수 있 는 패 킷 을 사용 하여 모든 대상 이 공유 하 는 구성원 과 함 수 를 어떻게 실현 하 는 지 소개 했다.모든 대상 이 공유 하 는 것 이 라 고 하 는데 다른 생각 은 바로 이런 구성원 의 역할 영역 이 다른 구성원 의 역할 영역 과 다 르 거나 폐쇄 적 인 개념 을 고려 하 는 것 이다.우리 가 개인 구성원 과 개인 적 인 방법 에서 정의 하 는 대상 이다.대상 이 정의 할 때 그의 역할 영역 은 바로 전체 함수 역할 영역 이 고 함수 에서 모든 내용 을 new 에서 한 번 씩 정의 한다.그러면 어떻게 해야만 대상 이 new 일 때 정적 구성원 과 정적 함수 가 더 이상 정의 되 지 않 게 할 수 있 습 니까?우리 가 대상 을 정의 할 때 그 는 함수 라 는 것 을 잊 지 마 세 요.우 리 는 이렇게 많은 함 수 를 썼 는데 왜 return 을 쓰 지 않 았 습 니까?우 리 는 줄곧 그 를 대상 으로 사용 하고 사람들 을 함수 로 보 았 기 때 문 입 니 다.만약 에 우리 가 한 대상 을 더 리 턴 한다 면 new 에 있 을 때 new 우리 return 의 대상 만 있 을 것 입 니 다.그래서 외층 함수 가 정의 한 내용 은 정의 할 때 만 실행 되 고 new 에 있 을 때 는 더 이상 실행 되 지 않 습 니 다.누군가가 또 물 었 다.그러면 우리 의 대상 은 더 이상 외층 함수 대상 이 아니 라 그 안에서 정 의 된 내용 을 어떻게 사용 합 니까?'패키지 닫 기'라 는 개념 을 잊 지 마 세 요.return 의 함수 도(외부)함수 역할 영역 에서 정 의 된 함수 입 니 다.그 는 외부 함수 정의 내용 에 접근 할 권리 가 있 습 니 다.따라서 정적 변수 와 정적 함수 의 정 의 는 다음 과 같 습 니 다.
var obj = (function(){
//static attribute
var obj_num = 0;
//static method
function add(){obj_num++};
return function(mem1){
this.a = mem1;
this.func = function(){};
//blow you can write some constructor codes
}
})();// , ^_^
보통 정적 방법 은 개인 적 인 것 입 니 다.공유 하 는 정적 방법 을 정의 하려 면 다음 과 같이 추가 할 수 있 습 니 다.
obj.pubmethod = function(){
};
5.상수상수 란 무엇 입 니까?상수 란 대상 에서 바 꿀 수 없 는 양 인 데,무엇이 대상 에서 바 꿀 수 없 는 양 이 라 고 합 니까?즉,대상 내부 에서 든 외부 에서 든 바 꿀 수 없 는 양 입 니 다.사유 변수 자체 가 외부 에서 바 꿀 수 없고 내부 에서 바 꿀 수 없다 면 그 값 을 바 꿀 수 있 는 함수 가 하나 도 없 으 면 됩 니 다^ ^
이상 은 자바 script 에서 가장 기본 적 인 대상 을 정의 하 는 방법 과 기교 입 니 다.언어 가 유연 할 수록 사람들 에 게 생각 하 게 하 는 공간 도 넓 어 집 니 다.
관심 있 는 친 구 는 온라인 HTML/CSS/JavaScript 코드 실행 도 구 를 사용 할 수 있 습 니 다.http://tools.jb51.net/code/HtmlJsRun상기 코드 실행 효 과 를 테스트 할 수 있 습 니 다.
자 바스 크 립 트 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,,,javascript 대상 입문 강좌,JavaScript 오류 및 디 버 깅 기술 요약,JavaScript 데이터 구조 와 알고리즘 기술 총화과JavaScript 스 트 리밍 알고리즘 및 기술 총화.
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Javascript에서 Math.max와 Math.max.apply의 차이점과 용법 상세 설명최근에 작은 사례를 만들 때 Math를 만났어요.max.apply라는 용법은 이전에 보기 드물게 재미있게 느껴졌으니 기록해 보세요. 1Math.max 문법:Math.max(n1,n2,n3,...,nX)반환값:max(...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.