>웹 프론트엔드 >JS 튜토리얼 >자바스크립트에서 사용자 정의 개체를 구성하는 방법에 대한 자세한 설명

자바스크립트에서 사용자 정의 개체를 구성하는 방법에 대한 자세한 설명

伊谢尔伦
伊谢尔伦원래의
2017-07-27 10:26:271165검색

고급 객체 구성을 만드는 방법에는 두 가지가 있습니다. 'this' 키워드 구성을 사용하는 것과 프로토타입 프로토타입 구성을 사용하는 것입니다. 예:

//使用this关键字定义构造的上下文属性 
function Girl() 
{ 
this.name = "big pig"; 
this.age = 20; 
this.standing; 
this.bust; 
this.waist; 
this.hip; 
} 
//使用prototype 
function Girl(){} 
Girl.prototype.name = "big pig"; 
Girl.prototype.age = 20; 
Girl.prototype.standing; 
Girl.prototype.bust; 
Girl.prototype.waist; 
Girl.prototype.hip; 
alert(new Girl().name);

위 예의 두 정의는 본질적으로 동일합니다. 둘 다 "Girl" 개체의 속성 정보를 정의합니다. "this"와 "prototype"의 차이점은 주로 속성 액세스 순서에 있습니다. 예:

function Test() 
{ 
this.text = function() 
{ 
alert("defined by this"); 
} 
} 
Test.prototype.test = function() 
{ 
alert("defined by prototype"); 
} 
var _o = new Test(); 
_o.test();//输出“defined by this”

객체의 속성이나 메서드에 액세스할 때 프로토타입 체인 검색 규칙을 따릅니다. 먼저 자체 정적 속성과 메서드를 찾은 다음 생성 컨텍스트의 액세스 가능한 속성과 메서드를 찾고 마지막으로 생성의 프로토타입 체인을 찾습니다.

"this"와 "prototype" 정의의 또 다른 차이점은 속성이 서로 다른 공간을 차지한다는 것입니다. "this" 키워드를 사용하여 예제에서는 각 인스턴스의 생성자에 포함된 모든 속성과 메서드에 필요한 공간을 초기화하고 "prototype" 정의를 사용합니다. "prototype"은 실제로 상위 항목에 대한 참조이기 때문입니다. 데이터를 복사하므로 "this"보다 초기화 및 저장에 리소스가 절약됩니다.

위 내용은 자바스크립트에서 사용자 정의 개체를 구성하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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