Heim Web-Frontend js-Tutorial JavaScript中创建对象和继承示例解读_javascript技巧

JavaScript中创建对象和继承示例解读_javascript技巧

May 16, 2016 pm 05:00 PM
创建对象 继承

对象创建:

当一个函数对象被创建时候,Function构造器产生的函数对象会运行类似这样的代码:

复制代码 代码如下:

this.prototype={constructor:this};

假设函数F
F用new方式构造对象时,对象的constructor被设置成这个F.prototype.constructor
如果函数在创建对象前修改了函数的prototype,会影响创建出来对象的construtor属性

如:
复制代码 代码如下:

function F(){};
F.prototype={constructor:'1111'};
var o=new F();//o.constructor===‘1111' true

继承原理:

JavaScript中的继承是使用原型链的机制,每个函数的实例都共享构造函数prototype属性中定义的数据,要使一个类继承另一个,需要把父函数实例赋值到子函数的prototype属性。并且在每次new实例对象时,对象的私有属性__proto__会被自动连接到构造函数的prototype。

instanceof就是查找实例对象的私有prototype属性链来确定是否是指定对象的实例

具体实例:
复制代码 代码如下:

//instanceof实现
function Myinstanceof(obj,type)
{
var proto=obj.__proto__;
while(proto)
{
if(proto ===type.prototype)break;
proto=proto.__proto__;
}
return proto!=null;
}


function View(){}
function TreeView(){}
TreeView.prototype=new View();//TreeView.prototype.__proto__=TreeView.prototype 自动完成
TreeView.prototype.constructor=TreeView;//修正constructor
var view=new TreeView();//view.__proto__=TreeView.prototype 自动完成
alert(view instanceof View); //true 查找到view.__proto__.__proto__时找到
alert(view instanceof TreeView); //true 查找到view.__proto__时找到
alert(Myinstanceof(view,View)); //true
alert(Myinstanceof(view,TreeView)); //true
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So lösen Sie das Problem, dass ActiveX-Komponenten keine Objekte erstellen können So lösen Sie das Problem, dass ActiveX-Komponenten keine Objekte erstellen können Jan 24, 2024 pm 02:48 PM

Lösung: 1. Überprüfen Sie die Rechtschreibung und den Pfad. 3. Überprüfen Sie die Registrierung. 5. Überprüfen Sie die Sicherheitssoftware. 8. Anzeigen Fehlermeldungen; 9. Finden Sie andere Lösungen. Ausführliche Einführung: 1. Rechtschreibung und Pfad prüfen: Stellen Sie sicher, dass der Name und der Pfad des Objekts keine Rechtschreibfehler enthalten und die Datei im angegebenen Pfad vorhanden ist. 2. Verweise auf Komponenten usw. hinzufügen.

Detaillierte Erläuterung der C++-Funktionsvererbung: Wie werden „Basisklassenzeiger' und „abgeleitete Klassenzeiger' bei der Vererbung verwendet? Detaillierte Erläuterung der C++-Funktionsvererbung: Wie werden „Basisklassenzeiger' und „abgeleitete Klassenzeiger' bei der Vererbung verwendet? May 01, 2024 pm 10:27 PM

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.

Wie wirken sich Vererbung und Polymorphismus auf die Klassenkopplung in C++ aus? Wie wirken sich Vererbung und Polymorphismus auf die Klassenkopplung in C++ aus? Jun 05, 2024 pm 02:33 PM

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 Sie den PHP-Fehler: Probleme beim Erben der übergeordneten Klasse Beheben Sie den PHP-Fehler: Probleme beim Erben der übergeordneten Klasse Aug 17, 2023 pm 01:33 PM

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

Ausführliche Erklärung der C++-Funktionsvererbung: Wie kann man Fehler bei der Vererbung debuggen? Ausführliche Erklärung der C++-Funktionsvererbung: Wie kann man Fehler bei der Vererbung debuggen? May 02, 2024 am 09:54 AM

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.

Berechnen Sie Zinsen für Festgelder (FDs) und Festgelder (RDs) mithilfe eines geerbten Java-Programms Berechnen Sie Zinsen für Festgelder (FDs) und Festgelder (RDs) mithilfe eines geerbten Java-Programms Aug 20, 2023 pm 10:49 PM

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

Verwendung von Polymorphismus und Vererbung in PHP zur Verarbeitung von Datentypen Verwendung von Polymorphismus und Vererbung in PHP zur Verarbeitung von Datentypen Jul 15, 2023 pm 07:41 PM

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.

Verpackungstechnologie und Anwendung in PHP Verpackungstechnologie und Anwendung in PHP Oct 12, 2023 pm 01:43 PM

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:

See all articles