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");
질문 이 있 습 니 다:만 든 모든 함수 에는
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()
질문 이 있 습 니 다:구조 함 수 는 인 스 턴 스 속성 을 정의 하고 원형 모드 는 방법 과 공유 하 는 속성 을 정의 합 니 다.
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 데이터 구조 와 알고리즘 기술 총화.
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JS 판단 수조 네 가지 실현 방법 상세그러면 본고는 주로 몇 가지 판단 방식과 방식 판단의 원리를 바탕으로 문제가 있는지 토론하고자 한다. 예를 들어 html에 여러 개의 iframe 대상이 있으면 instanceof의 검증 결과가 기대에 부합되지 않을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.