고급 객체 구성을 만드는 방법에는 두 가지가 있습니다. '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 중국어 웹사이트의 기타 관련 기사를 참조하세요!