먼저 다음 코드를 살펴 보겠습니다.
기능 머신 (Ecode, Horspower) {this.ecode = ecode; this.horsepower = 마력;} 함수 showme () {alert (this.name + "" + this.code + "" + this.horsepower);} var machine = new machine ( "code1", 15); machine.name = "machine1"; machine.showme = showme; machine.showme ();이 코드 조각에서 기계 객체를 작성한 후 Showme 함수는 기계를 통해 기계 객체 기계 방법이됩니다. Showme = showme;
그러나 위의 두 기능 (하나는 객체 생성자이고 다른 하나는 일반적인 방법)에 달려 있습니다. 이러한 코드는 "우아함"이 아니므로 프로토 타입이 있습니다.
// Machine Function Machine (Ecode, Horspower) {this.ecode = Ecode; this.horsepower = 마력;} //이 문장에 특별한주의를 기울입니다. machine.prototype은 처음으로 초기화되면 초기화됩니다. // 컴퓨터를 생성자로 호출 할 때 엔진의 값은 machine.prototype.engine = this.ecode + "" + this.horsepower; machine.prototype.showme = function () {alert (this.name + "" + this.code + "" + this.horsePower); }위의 코드를 사용하여 모든 기계 객체에는 showme 메소드가 있습니다.
그러나 다음에 특별한주의를 기울입니다.
프로토 타입은 클래스 객체가 아닌 인스턴스 만 직면합니다. (JS에서 클래스 자체는 객체입니다) so machine.showme (); 기계 객체에 ShowME 메소드가 없으므로 오류를보고합니다.
그렇다면 Showme 메소드를 어떻게 사용합니까? 새 머신 인스턴스를 만들어야하며 기계 인스턴스만이 메소드를 갖습니다.
var machine = new Machine ( "Code1", 15); machine.name = "machine1"; machine.showme (); // output Machine1 Code1 15.
프로토 타입을 사용하면 상속 관계를 구현하는 것이 더 쉽습니다. 예를 들어, 지금 자동차 수업을 작성하면 현재 기계 클래스를 상속해야하며 다음 코드 만 작성하면됩니다.
// 자동차 기능 차량 (이름, 생태계, 마력) {this.name = 이름; // 자동차 객체에 Ecode 및 마력 속성 Machine.call (이, Ecode, Horspower);} // CAR의 프로토 타입 포인트가 기계를 포인트하여 CAR 객체에 ShowMecar.Prototype = New Machine ()과 같은 기계 프로토 타입의 속성과 방법이 있도록 부모 클래스의 생성자를 계산합니다.주석이 여기에서 매우 명확하므로 자세한 내용은 없습니다.
그런 다음 테스트 할 새 개체를 만들 수 있습니다.
// 클래스 자동차의 새로운 객체를 만듭니다. var xiali = 새 차 ( "xiali", "aaa", 15); alert (xiali.engine); xiali.showme ();
위의 것은 프로토 타입의 기본 응용이지만 프로토 타입의 가장 중요한 응용이기도합니다.
당신이 마스터 한 프로토 타입을 사용하면 향후 물체의 구성과 상속에 대한 더 깊은 이해를 가질 것입니다.
더 많은 JavaScript 구문을 보려면 "JavaScript 참조 자습서"및 "JavaScript Code Style Guide"를 따라갈 수 있습니다. 또한 모두가 wulin.com을 더 지원하기를 바랍니다.