>  기사  >  웹 프론트엔드  >  숨겨진 새 항목을 사용하여 object_jquery 만들기

숨겨진 새 항목을 사용하여 object_jquery 만들기

WBOY
WBOY원래의
2016-05-16 18:08:521176검색

많은 경우 우리는 이와 같은 클래스를 작성한 다음 new를 사용하여 객체를 만듭니다.

코드 복사 코드는 다음과 같습니다.

function Person(이름,나이){
this .name=name;
this.age=age
}
Person.prototype={
setName : function(n){this.name=n;},
getName : function (){return this.name;}
}
var p = new Person('jack',25)

이 항목으로 변경
코드 복사 코드는 다음과 같습니다.

function Person(이름,나이){
//조건 (this== window) 또는 (this==self) 또는 (this.constructor!=Object)
if(!this.setName){
return new Person(name,age); >}
this.name=name;
this.age=age;
}
Person.prototype={
setName : function(n){this.name=n;}
getName : function( ){return this.name;}
}
var p = Person('jack',25);

이 클래스에는 다음이 있습니다.

코드 복사 코드는 다음과 같습니다.
if(!this.setName){
return new Person(name,age);
}

좋아요, 클래스의 인스턴스(객체)를 생성하는 방법도 있습니다.

코드 복사 코드는 다음과 같습니다.
var p = Person(' jack',25);

이러한 생성 방법(함수 호출)은 위의 방법보다 "new_"가 적고 새롭습니다. 이 방법을 사용하면 객체가 생성될 때마다 4바이트를 줄일 수 있습니다.
클래스 내부의 if 판단 조건이 this.name과 같은 프로토타입이 아닌 속성으로 대체되는 경우. 프로그램에서 오류 메시지가 표시됩니다. 재귀가 너무 많습니다

코드 복사 코드는 다음과 같습니다.
function 사람(이름, 나이){
if(!this.name){
return new Person(이름,나이)
}
this.name=name; age=age;
}
Person.prototype={
setName : function(n){this.name=n;},
getName : function(){return this.name;}
}
var p = Person('jack',25)

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.