javascript学习笔记(十) js对象 继承_基础知识
1.原型链
//很少单独使用
View Code
//定义 SuperClass类,有一个属性property和一个方法getSuperValue
function SuperClass() {
this.property = true;
}
SuperClass.prototype.getSuperValue = function() {
return this.property;
}
//定义SubClass类,有一个属性subproperty和后来添加的一个方法getSubValue
function SubClass() {
this.subproperty = false;
}
//SubClass类继承SuperClass类
SubClass.prototype = new SuperClass();
//SubClass类添加一个方法getSubValue
SubClass.prototype.getSubValue = function() {
return this.subproperty;
}
//创建SubClass类的实例
var instance = new SubClass();
alert(instance.getSuperValue());
2. 确定原型与实例的关系
第一种方式用 instanceof 操作符,用来测试实例和原型链中出现过的构造函数
alert(instance instanceof Object); //true ,instance是Object的实例吗?
alert(instance instanceof SuperClass); //true ,instance是SuperClass的实例吗?
alert(instance instanceof SubClass); //true,instance是SubClass的实例吗?
第二种方式用 isPrototypeOf()方法,测试原型链中出现的原型
alert(Object.prototype.isPrototypeOf(instance)); //true
alert(SuperClass.prototype.isPrototypeOf(instance)); //true
alert(SubClass.prototype.isPrototypeOf(instance)); //true
3. 用原型链继承定义方法时的注意点
定义方法是的顺序:
View Code
function SuperClass() {
this.property = true;
}
SuperClass.prototype.getSuperValue = function() {
return this.property;
}
function SubClass() {
this.subproperty = false;
}
//SubClass继承SuperClass
SubClass.prototype = new SuperClass(); //这个要先写,新添加的方法和重写超类的方法要写在后面,否则重写的超类方法将永远无法调用
//添加新方法
SubClass.prototype.getSubValue = function() {
return this.subproperty;
}
//重写超类的方法
SubClass.prototype.getSuperValue = function() {
return false;
}
var instance = new SubClass();
alert(instance.getSuperValue()); //fales,这里SubClass的实例调用了SubClass的getSuperValue()方法,而屏蔽了SuperClass的getSuperValue()方法,
//使用SuperClass的方法会调用SuperClass的getSuperValue()方法
原型链继承的缺点:1)共享超类中的属性,2)在创建子类时不能向超类的构造函数传递参数。所有很少单独使用原型链
4.借用构造函数
//很少单独使用
优点:可以向超类传递参数 。缺点:函数无法复用,所有类都要使用构造函数模式
View Code
function SuperClass(name) {
this.name = name;
}
function SubClass(){
SuperClass.call(this,"RuiLiang"); //继承了SuperClass,同时向SuperClass传递了参数
this.age = 29; //实例属性
}
var instance = new SubClass();
alert(instance.name); //RuiLiang
alert(instance.age); //29
6.组合继承
//最常用的继承模式
View Code
//创建SuperClass
function SuperClass(name) {
this.name = name;
this.colors = ["red","blue","green"];
}
SuperClass.prototype.sayName = function() {
alert(this.name);
}
////创建SubClass
function SubClass(name,age) {
SuperClass.call(this,name); //继承属性
this.age = age; //自己的属性
}
SubClass.prototype = new SuperClass(); //继承方法
SubClass.prototype.sayAge = function() { //SubClass添加新方法
alert(this.age);
};
//使用
var instance1 = new SubClass("RuiLiang",30);
instance1.colors.push("black");
alert(instance1.colors); //"red,blue,green,black"
instance1.sayName(); //"RuiLiang"
instance1.sayAge(); //30
var instance2 = new SubClass("XuZuNan",26);
alert(instance2.colors); //"red,blue,green"
instance2.sayName(); //"RuiLiang"
instance2.sayAge(); //30
7.其它继承模式
原型式继承、寄生式继承、寄生组合式继承

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Verwenden Sie bei der Funktionsvererbung „Basisklassenzeiger“ und „abgeleitete Klassenzeiger“, um den Vererbungsmechanismus zu verstehen: Wenn der Basisklassenzeiger auf das abgeleitete Klassenobjekt zeigt, wird eine Aufwärtstransformation durchgeführt und nur auf die Mitglieder der Basisklasse zugegriffen. Wenn ein abgeleiteter Klassenzeiger auf ein Basisklassenobjekt zeigt, wird eine Abwärtsumwandlung durchgeführt (unsicher) und muss mit Vorsicht verwendet werden.

Vererbung und Polymorphismus wirken sich auf die Kopplung von Klassen aus: Vererbung erhöht die Kopplung, da die abgeleitete Klasse von der Basisklasse abhängt. Polymorphismus reduziert die Kopplung, da Objekte über virtuelle Funktionen und Basisklassenzeiger konsistent auf Nachrichten reagieren können. Zu den Best Practices gehören der sparsame Umgang mit der Vererbung, die Definition öffentlicher Schnittstellen, das Vermeiden des Hinzufügens von Datenelementen zu Basisklassen und die Entkopplung von Klassen durch Abhängigkeitsinjektion. Ein praktisches Beispiel, das zeigt, wie Polymorphismus und Abhängigkeitsinjektion verwendet werden, um die Kopplung in einer Bankkontoanwendung zu reduzieren.

Beheben von PHP-Fehlern: Probleme bei der Vererbung übergeordneter Klassen In PHP ist die Vererbung ein wichtiges Merkmal der objektorientierten Programmierung. Durch Vererbung können wir vorhandenen Code wiederverwenden und ihn erweitern und verbessern, ohne den ursprünglichen Code zu ändern. Obwohl Vererbung in der Entwicklung weit verbreitet ist, können beim Erben von einer übergeordneten Klasse manchmal Fehler auftreten. Dieser Artikel konzentriert sich auf die Lösung häufiger Probleme, die beim Erben von einer übergeordneten Klasse auftreten, und stellt entsprechende Codebeispiele bereit. Frage 1: Die übergeordnete Klasse wird beim Erben der übergeordneten Klasse nicht gefunden, wenn dies nicht der Fall ist

Tipps zum Debuggen von Vererbungsfehlern: Stellen Sie sicher, dass die Vererbungsbeziehungen korrekt sind. Verwenden Sie den Debugger, um den Code schrittweise durchzugehen und Variablenwerte zu untersuchen. Stellen Sie sicher, dass Sie den virtuellen Modifikator richtig verwenden. Untersuchen Sie das Problem der Vererbungsdiamanten, das durch versteckte Vererbung verursacht wird. Suchen Sie nach nicht implementierten rein virtuellen Funktionen in abstrakten Klassen.

Verwendung von Polymorphismus und Vererbung zur Verarbeitung von Datentypen in PHP Einführung: In PHP sind Polymorphismus und Vererbung zwei wichtige Konzepte der objektorientierten Programmierung (OOP). Durch den Einsatz von Polymorphismus und Vererbung können wir flexibler mit unterschiedlichen Datentypen umgehen. In diesem Artikel wird die Verwendung von Polymorphismus und Vererbung für den Umgang mit Datentypen in PHP vorgestellt und deren praktische Anwendung anhand von Codebeispielen gezeigt. 1. Das Grundkonzept der Vererbung Vererbung ist ein wichtiges Konzept in der objektorientierten Programmierung. Sie ermöglicht es uns, eine Klasse zu erstellen, die die Eigenschaften und Methoden der übergeordneten Klasse erben kann.

Vererbung ist ein Konzept, das es uns ermöglicht, von einer anderen Klasse auf die Eigenschaften und das Verhalten einer Klasse zuzugreifen. Die Klasse, die Methoden und Mitgliedsvariablen erbt, wird als Superklasse oder übergeordnete Klasse bezeichnet, und die Klasse, die diese Methoden und Mitgliedsvariablen erbt, wird als Unterklasse oder Unterklasse bezeichnet. In Java verwenden wir das Schlüsselwort „extends“, um eine Klasse zu erben. In diesem Artikel besprechen wir ein Java-Programm zur Berechnung von Zinsen für Fest- und Festgelder mittels Erbschaft. Erstellen Sie zunächst diese vier Java-Dateien – Acnt.java – in Ihrer lokalen Computer-IDE. Diese Datei enthält eine abstrakte Klasse „Acnt“, die zum Speichern von Kontodetails wie Zinssatz und Betrag verwendet wird. Es wird auch eine abstrakte Methode „calcIntrst“ mit dem Parameter „amnt“ zur Berechnung geben

Kapselungstechnologie und Anwendungskapselung in PHP sind ein wichtiges Konzept in der objektorientierten Programmierung. Sie beziehen sich auf die gemeinsame Kapselung von Daten und Operationen auf Daten, um eine einheitliche Zugriffsschnittstelle für externe Programme bereitzustellen. In PHP kann die Kapselung durch Zugriffskontrollmodifikatoren und Klassendefinitionen erreicht werden. In diesem Artikel werden die Kapselungstechnologie in PHP und ihre Anwendungsszenarien vorgestellt und einige spezifische Codebeispiele bereitgestellt. 1. Gekapselte Zugriffskontrollmodifikatoren In PHP wird die Kapselung hauptsächlich durch Zugriffskontrollmodifikatoren erreicht. PHP bietet drei Zugriffskontrollmodifikatoren:

Vererbung: Vererbung ist ein grundlegendes Konzept in der objektorientierten Programmierung (OOP), das es Klassen ermöglicht, Eigenschaften und Verhaltensweisen von anderen Klassen zu erben. Dabei handelt es sich um einen Mechanismus zum Erstellen neuer Klassen basierend auf vorhandenen Klassen, zum Fördern der Wiederverwendung von Code und zum Herstellen hierarchischer Beziehungen zwischen Klassen. Die Vererbung basiert auf dem Konzept der „Eltern-Kind“- oder „Superklasse-Kind“-Beziehung. Die Klasse, die von ihr erbt, wird Superklasse oder Basisklasse genannt, während die Klasse, die von einer Superklasse erbt, Unterklasse oder abgeleitete Klasse genannt wird. Unterklassen erben alle Eigenschaften (Variablen) und Methoden (Funktionen) ihrer Oberklasse und können auch ihre eigenen einzigartigen Eigenschaften und Methoden hinzufügen oder geerbte Typen überschreiben. In der objektorientierten Programmierung (OOP) ist Vererbung ein grundlegendes Konzept Ermöglicht Klassen, Eigenschaften und Verhalten von anderen Klassen zu erben. es fördert
