JS 생 성 대상 의 패턴 인 스 턴 스 소결

본 고의 실례 는 JS 창설 대상 의 모델 을 총 결 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
1.공장 모델
구체 적 인 대상 을 만 드 는 과정 을 추상 화하 고 함 수 를 만 들 며 특정한 인터페이스 생 성 대상 의 디 테 일 을 패키지 합 니 다.
  • 새 대상
  • 속성 과 방법 정의
  • return새로 지은 대상
  • 
    function createPerson(name, age, job) {
     var obj = new Object();
     obj.name = name;
     obj.age = age;
     obj.job = job;
     obj.sayHi = function() {
     congsole.log(this.name);
     };
     return obj;
    }
    
    var person1 = createPerson("name1", "age1", "job1");
    var person2 = createPerson("name2", "age2", "job2");
    
    
    질문 이 있 습 니 다:
    대상 인식 문 제 를 해결 하지 못 했 습 니 다.
    2.구조 함수 모드
  • 보이 지 않 는 생 성 대상
  • 속성 과 방법 을 직접 정의this에서
  • 없 음return
  • new연산 자 를 통 해 호출
  • 
    function Person(name, age, job) {
     this.name = name;
     this.age = age;
     this.job = job;
     this.sayHi = function() {
     console.log(this.name);
     };
    }
    
    var person1 = new Person("name1", "age1", "job1");
    var person2 = new Person("name2", "age2", "job2");
    
    
    질문 이 있 습 니 다:
  • 모든 방법 은 인 스 턴 스 에서 한 번 만들어 야 합 니 다
  • 3.원형 모드
    만 든 모든 함수 에는prototype원형 속성 이 있 습 니 다.이 속성 은 포인터 로 대상 을 가리 키 며,이 대상 의 용 도 는 특정 유형의 모든 인 스 턴 스 가 공유 할 수 있 는 속성 과 방법 을 포함 합 니 다.
    모든 원생 인용 유형 은 구조 함수 의 원형 에 방법 을 정의 했다.
    
    function Person{
    
    }
    
    Person.prototype.name="name"
    Person.prototype.age="age"
    Person.prototype.job="job"
    Person.prototype.sayHi=function(){
     console.log(this.name)
    }
    
    var person1=new Person()
    var person2=new Person()
    
    
    질문 이 있 습 니 다:
  • 모든 속성 은 많은 실례 에 의 해 공유 된다
  • 4.조합 구조 와 원형 모델
    구조 함 수 는 인 스 턴 스 속성 을 정의 하고 원형 모드 는 방법 과 공유 하 는 속성 을 정의 합 니 다.
    
    function Person(name, age, job) {
     this.name = name;
     this.age = age;
     this.job = job;
    }
    Person.prototype={
     constructor:Person;
     sayHi:function(){
     console.log(this.name)
     }
    }
    
    var person1 = new Person("name1", "age1", "job1");
    
    
    5.동적 원형 모드
    여기 서 원형 에 대한 수정 은 모든 인 스 턴 스 에 적용 되 며 구조 함수 만 처음 호출 할 수 있 습 니 다.
    
    function Person(name,age,job){
     this.name=name;
     this.age=age;
     this.job=job;
     if(typeof this.sayHi !="function" ){
     Person.prototype.sayHi=functong(){
      console.log(this.name)
     }
     }
    }
    
    var person1 = new Person("name1", "age1", "job1");
    
    
    6.기생 구조 함수 모드
    공장 모드+구조 함수
  • 되 돌아 오 는 대상 과 구조 함수,구조 함수 의 원형 속성 은 관계 가 없다
  • 의존 해 서 는 안 된다instanceof대상 원형
  • 사용 을 권장 하지 않 음
  • 
    function Person(name, age, job) {
     var obj = new Object();
     obj.name = name;
     obj.age = age;
     obj.job = job;
     obj.sayHi = function() {
     congsole.log(this.name);
     };
     return obj;
    }
    
    var person1 = new Person("name1", "age1", "job1");
    
    
    7.타당 한 구조 모델
  • 공공 속성 이 없습니다
  • 사용 하지 않 음this
  • 사용 하지 않 음new
  • 
    function Person(name, age, job) {
     var obj = new Object();
     //          
     obj.sayHi = function() {
     congsole.log(name);
     };
     return obj;
    }
    
    var person1 = Person("name1", "age1", "job1");
    // name1
    
    
    제6 장 에서 발췌 하 다.
    관심 있 는 친 구 는 온라인 HTML/CSS/JavaScript 코드 실행 도 구 를 사용 할 수 있 습 니 다.자 바스 크 립 트 고급 프로 그래 밍상기 코드 실행 효 과 를 테스트 할 수 있 습 니 다.
    자 바스 크 립 트 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,,,http://tools.jb51.net/code/HtmlJsRun,javascript 대상 입문 강좌,JavaScript 오류 및 디 버 깅 기술 요약JavaScript 데이터 구조 와 알고리즘 기술 총화.
    본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

    좋은 웹페이지 즐겨찾기