학습 노트 3:자바 script 대상 프로 그래 밍 단일 모델 원리 와 실현 방법 분석
4148 단어 Javascript대상 을 향 하 다단일 모드
1.단일 모드 개요
바 이 두 백과 에서 단일 모델 에 대한 정의 에서 비롯 되 었 습 니 다.
단일 모드 는 하나의 인 스 턴 스 만 있다 는 뜻 이다.단일 모드 는 하나의 인 스 턴 스 만 있 고 자체 적 으로 예화 되 어 전체 시스템 에 이 인 스 턴 스 를 제공 하도록 확보 합 니 다.이런 종 류 를 일례 류 라 고 한다.
javascript 의 세계 에 서 는 엄격 한 대상 과 클래스 정의 가 없습니다.'모든 대상'은 javascript 에서 대상 입 니 다.자바,c+또는 phop 처럼 특정한 방법 으로 인 스 턴 스 를 되 돌려 서 실현 할 수 없습니다.따라서 자바 script 에 있어 서 우리 가 창조 해 야 할 것 은'여러 번 예화 되 어 서 는 안 되 는'대상 입 니 다.즉,한 번 만 예화 할 수 있 는 대상 입 니 다.
2.간단 한 단일 모드:
한 번 만 실례 화 할 수 있 는 대상 도'대상 글자 의 양'의 정의 방식 으로 실현 할 수 있다.
var singleton = {
attribute:'',
method:function(){}
}
이렇게 정 의 된 대상 은 new singleton 방식 으로 다른 대상 을 만 들 수 없습니다(prototype 과 constructor 속성 은 존재 하지 않 습 니 다).3.개인 구성원 을 포함 하 는 단일 모드:
만약 에 예전 에 제 가 쓴 클래스 구성원 에 관 한 글 을 보면 자 연 스 럽 게 우 리 는 패키지 로 이 루어 질 것 이 라 고 생각 할 수 있 습 니 다.사용 할 패키지 라면 함수 와 함수 로 값 을 되 돌려 줄 것 입 니 다.그래서 이런 사례 모델 은 다음 과 같 습 니 다.
var singleton = function(){
var private_attribute = '';
functioin private_method(){}
return {
public_attribute:'',
public_method:function(){}
};
}
익명 함수 기억 나 세 요?보통 패 키 지 를 사용 할 때 사용 합 니 다.개선 후 다음 과 같 습 니 다.
var singleton = (function(){
var private_attribute = '';
functioin private_method(){}
return {
public_attribute:'',
public_method:function(){}
};
})();
4.불활성 로드(lazy loading,로드 지연)단일 모드2,3 에서 보 여 준 단일 모드 정의 방식 은 모두 정의 할 때 만 든 단일 예 입 니 다.이렇게 하면 메모리 가 낭비 되 는데 어떻게 사용 할 때 만 만 들 수 있 습 니까?타성 로드 란 먼저 정 의 를 내 린 다음 에 어 딘 가 에 대상 을 만 드 는 것 입 니 다.따라서 함 수 를 사용 해 야 합 니 다.자바 나 phop 에서 단일 모드 는 보통 정적 인 방법 으로 만 드 는 것 을 알 고 있 습 니 다.마찬가지 로 폐쇄 형식의 정의 식 을 개선 하 겠 습 니 다.
var singleton = (function(){
var unique;
function getinstance(){
if(!unique){
unique = construct();
return unique;
}
}
function construct(){
var private_member;
function private_method(){}
return {//
public_member:'',
public_method:function(){}
};
})();
이렇게 단일 대상 을 호출 하 는 방법:
singleton.getinstance().publicmethod();
이렇게 하면 호출 방법 이나 속성 을 인용 할 때 만 진정 으로 유 니 크 대상 을 만 들 수 있 습 니 다.바로 사용 할 때 귀 찮 습 니 다.)5.심 플 뮤 직 비디오 코드 스타일
참고 로 제 가 js 를 쓰 는 간단 한 스타일 을 공유 하 겠 습 니 다.js 는 프론트 코드 임 에 도 불구 하고 그 자체 로 는 뮤 직 비디오(model,contrller,view,뮤 직 비디오 에 관 한 개념 은 baidu/google)로 나 눌 수 있 습 니 다.그래서 한 페이지 의 js 코드 를 쓸 때 저 는 이렇게 씁 니 다.
//
var controller = {
init:function(){}
};
//
var view = {
table:{},
banner:{},
foot:{}
};
//
var model = {
table_data:{}
}
페이지 onload 에서 controuler.init()를 호출 합 니 다.초기 화 작업(데이터 불 러 오기,페이지 렌 더 링,이벤트 감청 등)을 마 쳤 습 니 다.이렇게 쓰 는 목적 은 가능 한 한 같은 논리 적 조직 을 구성 하여 쉽게 찾 고 수정 하 는 것 입 니 다.현 재 는 하나의 초기 형태 일 뿐 입 니 다.이 책 을 읽 은 후에 경량급 모델 을 쓸 수 있 기 를 바 랍 니 다^관심 있 는 친 구 는 온라인 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에 따라 라이센스가 부여됩니다.