먼저, 비 임원 상속 중 하나를 살펴 보겠습니다 : 인스턴스 상속 메소드.
나는 너무 말도 안된다고 말하지 않습니다. 비 임원에 의해 상속되므로 자주 사용해서는 안됩니다. 자주 사용되지 않고 여전히 존재하기 때문에 특정 경우에 사용되는 요소는 하나뿐입니다. 인스턴스 상속 방법은 주로 핵심 객체의 상속에 사용되며, 지금까지 핵심 객체의 상속을 해결하는 유일한 방법입니다.
핵심 객체의 상속은 특정 값을 갖습니다. 예를 들어, 오류 객체입니다. 우리 회사는 향후 개발을 단순화하기 위해 오류 클래스를 구현해야 할 수도 있습니다. 현재 인스턴스 상속 메소드를 사용하여 오류를 상속해야합니다.
코드는 다음과 같습니다.
코드 사본은 다음과 같습니다.
함수 확장 기러기 (MES)
{
var 인스턴스 = 새로운 오류 (MES);
instance.newerror = function () {
경고 ( "오류는"+mes);
}
반환 인스턴스;
}
좋아, 테스트 :
코드 사본은 다음과 같습니다.
var e = new ExtendingError ( "번호는 1보다 작습니다");
e.newerror ();
경고 (e.toString ());
결과는 우리를 만족시킵니다.
좋아, 말도 안되는 말도 안되는 것은 비 임시 스트림 상속 방법으로, 기본적으로 핵심 물체의 상속에만 사용되는 경우를 기억하십시오!
다음으로, 두 번째 비 임금 상속을 살펴 보겠습니다 : 상속 방법을 복사하십시오.
이름에서 알 수 있듯이 복사 상속은 복사를 통한 객체의 상속을 의미합니다. 무엇을 복사해야합니까? 그것이 객체의 특성과 방법이라는 것이 분명합니다. JavaScript에서 클래스는 실제로 해시 가능임을 기억하십니까? 기억이 나지 않으면 돌아가서 기본 사항을 검토하십시오. 한동안 JavaScript 객체에 대한 기사를 쓸 수 있습니다.
이것을 이해하는 것이 더 쉬울 것입니다. 코드를보십시오.
먼저 확장 방법을 작성하십시오.
코드 사본은 다음과 같습니다.
function.prototype.extend = function () {
for (var pro in obj)
{
// 이것은 실제로 부모 클래스의 속성과 방법의 전체 사본입니다.
this.prototype [pro] = obj [pro];
}
}
좋아, 사용 방법을 보려면 코드를 작성하십시오.
코드 사본은 다음과 같습니다.
기능 동물 ()
{}
기능 사람 ()
{}
people.extend (new Animal ())
{}
분별력있는 사람은이 방법의 단점이 너무 분명하다는 것을 한눈에 볼 수 있습니다.
객체의 속성 메소드를 하나씩 복사 할 때 반사가 실제로 사용됩니다. 나는 반사 효율의 손상에 대해별로 말하지 않을 것입니다.
프로토 타입 상속과 마찬가지로 부모 객체를 초기화해야합니다. 상속 관계가 결정되지만 매개 변수는 여전히 불확실하지만 재생할 수 없습니다!
요컨대,이 방법은 일반적으로 사용되지 않습니다.
자, 일반적으로 사용되는 것에 대해 이야기합시다. 혼합 상속!
이것은 두 가지 주류 상속 방법을 기반으로합니다. 두 가지 상속 방법을 비교하면 두 상속 방법의 장점과 단점이 보완 적이므로 혼합하기 쉽습니다!
코드 사본은 다음과 같습니다.
기능인 (이름)
{
this.name = 이름;
this.sayname = function () {
Alert ( "내 이름은"+이름);
}
}
기능 소녀 (이름, 나이)
{
// 구성 상속
this.father = 사람들;
this.father (이름);
이것을 삭제하십시오.
this.introading = function () {
ALERT ( "내 이름은"+name+"입니다. 나는"+age);
}
}
// 프로토 타입 상속
girl.prototype = 새로운 사람 ();
좋아, 두 가지 방법의 혼합, 이제 문제가 해결되었는지 봅시다.
var g = New Girl ( "Xuan", 22);
경고 (G 인스턴스);
g.sayname ();
g.introctor ();
테스트가 통과되었습니다!
이것은 비교적 완벽한 솔루션이지만 코드의 복잡성을 증가 시키므로 특정 솔루션은 실제로 모든 사람의 선택에 따라 달라집니다.
이것은 JavaScript와 함께 연주하는 모든 방법입니다. 모두 내 다른 기사를 계속 따를 수 있습니다.