Code Reuse의 유명한 원칙이 있습니다. 이는 GOF가 제안한 코드 재사용 원칙이 있습니다. 우선 순위는 클래스 상속보다는 객체 조합을 사용하는 데 사용됩니다. JavaScript에는 클래스 개념이 없으므로 코드 재사용은 클래스 상속에만 국한되지 않습니다. 생성자를 포함하여 JavaScript에서 객체를 생성하는 방법에는 여러 가지가 있으며 새로 사용하여 개체를 만들 수 있으며 개체를 동적으로 수정할 수 있습니다. 다른 객체를 필요한 객체, 객체 혼합 기술, 차입 및 필요한 방법을 재사용하는 등 JavaScript에서 비교 부인 상속 (최신 상속 모드라고 할 수 있음)을 재사용하는 방법이 많이 있습니다.
전형적인 상속 모드-디펜트 모드
두 생성자의 예 부모와 자식의 예 :
코드 사본은 다음과 같습니다.
기능 부모 (이름) {
this.name = name || "Adam";
}
parent.prototype.say = {
이 this.name;
};
기능 자식 (이름) {
}
상속 (자녀, 부모);
다음은 재사용 가능한 inherit () 함수의 구현 방법입니다.
코드 사본은 다음과 같습니다.
함수 상속 (c, p) {
C. prototype = new p ();
}
여기서 프로토 타입 속성은 함수가 아닌 객체를 가리켜야하므로 구성 자체가 아닌 부모 생성자가 만든 인스턴스를 가리켜 야합니다.
그런 다음 자식 객체를 만들 때 프로토 타입을 통해 부모 인스턴스에서 기능을 얻습니다.
코드 사본은 다음과 같습니다.
var kid = new Child ();
kid.say (); // "Adam"
상속 된 프로토 타입 체인을 호출하십시오.
더 자세히 아이의 특성을 추가하십시오.
코드 사본은 다음과 같습니다.
var kid = new Child ();
kid.name = "Patrick";
kid.say (); // "Patrick"
프로토 타입 체인의 변화 :
객체 속성에서 이름을 찾을 수 있으므로 더 이상 프로토 타입 체인을 찾을 필요가 없습니다.
상기 패턴을 사용하는 단점 중 하나는 두 객체의 특성을 동시에 상속한다는 것입니다. 대부분의 경우, 이러한 속성은 필요하지 않습니다.
또 다른 단점은 inherit () inherit () inherit를 사용하는 것이 하위 구성 자에게 전달 매개 변수를 지원하지 않는다는 것입니다.
코드 사본은 다음과 같습니다.
var s = new Child ( "Seth");
s.say (); // "Adam"
이 결과는 예상되지 않습니다. 자식 생성자는 매개 변수를 모체 생성자로 전달할 수 있지만,이 상속 메커니즘은 자식 객체가 필요할 때마다 다시 실행되어야하며, 부모 객체가 다시 제작되기 때문에 비효율적입니다.
이 기사는 여기서 끝납니다. 향후 JavaScript 코드 재사용 모드의 나머지 모드를 계속 업데이트 할 것입니다.