Heim  >  Artikel  >  Web-Frontend  >  Zwei verschiedene Möglichkeiten zum Erstellen von Klassen und Objekten in JS_Basic Knowledge

Zwei verschiedene Möglichkeiten zum Erstellen von Klassen und Objekten in JS_Basic Knowledge

WBOY
WBOYOriginal
2016-05-16 16:40:011085Durchsuche

Wenn Sie in JavaScript eine neue Funktion definieren, deklarieren Sie tatsächlich eine neue Klasse, und die Funktion selbst entspricht dem Konstruktor der Klasse. Der folgende Code zeigt Ihnen zwei verschiedene Möglichkeiten zum Erstellen einer neuen Person-Klasse, und die Definition von Person.prototype folgt der Funktionsdefinition.

var Person = function(name) { // 一个匿名函数, 并将这个函数赋值给一个Person变量, 此时Person成为一个类 

this.name = name; 

} 

function Person(name) { // 直接定义一个叫做Person的函数表示Person类 

this.name = name; 

} 

Person.prototype = { // 定义Person的prototype域 

printName: function() { // 定义一个print函数 

alert(this.name); 

} 

}

Nachdem Sie eine Klasse über eine Funktion deklariert haben, können Sie die Klasse über den neuen Operator instanziieren. Auf diese Weise können Sie die Mitgliedsfunktionen der Klasse aufrufen, um Ihre Logik zu vervollständigen.

var person = new Person("Joe Smith"); // 使用new操作符来新建一个Person的实例, 并赋给变量person 
person.printName(); // person就可以看作是一个实例的引用(reference), 所以可以通过这个引用来调用Person类中的成员函数

Lassen Sie uns den gesamten Prozess und die Schritte zum Erstellen einer Instanz einer neuen Klasse zusammenfassen:

1. Deklarieren Sie eine neue Klasse, indem Sie eine Funktion definieren (anonym oder mit einem echten Namen). 2. Definieren Sie bei Bedarf das Prototypfeld dieser neuen Klasse
3. Verwenden Sie den neuen Operator gefolgt von der von Ihnen definierten Funktion, um eine neue Klasseninstanz zu erstellen. Sobald der JavaScript-Compiler auf den neuen Operator stößt, erstellt er tatsächlich eine leere Klasseninstanzvariable.
4. Kopieren Sie alle Eigenschaften und Methoden im Prototypfeld dieser Klasse in diese neue Instanz und verweisen Sie alle Zeiger in ihren Mitgliedsfunktionen auf diese neu erstellte Instanz
5. Als nächstes führen Sie die Funktion direkt nach dem neuen Operator
aus 6. Wenn Sie diese Funktion ausführen und versuchen, einer nicht vorhandenen Eigenschaft einen Wert zuzuweisen, erstellt der JavaScript-Compiler die Eigenschaft automatisch für Sie im Rahmen dieser Instanz
7. Nachdem die Funktion ausgeführt wurde, geben Sie die initialisierte Instanz zurück.

In Prototype können Sie mithilfe des Class-Objekts auf relativ einfache Weise ein neues Objekt deklarieren. Mithilfe von Class.create() erstellt der Prototyp eine Standardkonstruktorfunktion initialize() für Sie. Sobald Sie diese Funktion implementiert haben, können Sie eine neue Instanz der Klasse auf ähnliche Weise wie die Konstruktorfunktion in Java erstellen.

Stellungnahme:
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