Heim > Artikel > Web-Frontend > Wie schreibe ich „oop“ in Javascript
In der Webentwicklung ist JavaScript zu einer sehr beliebten Programmiersprache geworden. In JavaScript ist die objektorientierte Programmierung (OOP) ein wichtiges Konzept. Mit OOP können Sie Ihren Code strukturieren und seine Duplizierung reduzieren, wodurch er einfacher zu warten und zu erweitern ist. In diesem Artikel wird erläutert, wie man OOP in JavaScript schreibt.
In JavaScript können die Eigenschaften und Methoden eines Objekts über den Prototyp gemeinsam genutzt werden, und der Konstruktor wird verwendet, um ein neues Objekt zu erstellen und seine Eigenschaften zu initialisieren. Das Folgende ist ein einfaches Beispiel für die Verwendung von Konstruktoren und Prototypen:
function Person(name, age) { this.name = name; this.age = age; } Person.prototype.sayHi = function() { console.log("Hi, my name is " + this.name + " and I'm " + this.age + " years old."); } var person1 = new Person("John", 30); var person2 = new Person("Mary", 25); person1.sayHi(); // Hi, my name is John and I'm 30 years old. person2.sayHi(); // Hi, my name is Mary and I'm 25 years old.
Im obigen Beispiel definieren wir einen Person
-Konstruktor und initialisieren name
und age
Attribut. Dann verwenden wir Person.prototype
, um jedem Person
-Objekt eine sayHi
-Methode hinzuzufügen. Diese Methode kann von allen Person
verwendet werden /code> code>Objektfreigabe. Schließlich haben wir zwei Person
-Objekte erstellt und deren Methode sayHi
aufgerufen. Person
构造函数,初始化了name
和age
属性。然后,我们使用Person.prototype
给每个Person
对象添加了一个sayHi
方法,这个方法可以被所有Person
对象共享。最后,我们创建了两个Person
对象,并调用了它们的sayHi
方法。
在ES6中,JavaScript引入了类的概念,并使用关键字class
来实现。类提供了一种更简洁、更易于理解的语法,用于定义对象。
以下是一个使用类的例子:
class Person { constructor(name, age) { this.name = name; this.age = age; } sayHi() { console.log("Hi, my name is " + this.name + " and I'm " + this.age + " years old."); } } let person1 = new Person("John", 30); let person2 = new Person("Mary", 25); person1.sayHi(); // Hi, my name is John and I'm 30 years old. person2.sayHi(); // Hi, my name is Mary and I'm 25 years old.
在上面的例子中,我们使用class
关键字定义了一个Person
类,并在constructor
方法中初始化了name
和age
属性。然后,我们定义了一个sayHi
方法,用于输出一个招呼。最后,我们创建了两个Person
对象,并调用了它们的sayHi
方法。
在OOP中,继承是指从一个已有的对象中派生出一个新的对象,新对象继承了原来的对象的属性和方法。在JavaScript中,继承可以通过使用prototype
和class
来实现。
以下是使用prototype
实现继承的例子:
function Person(name, age) { this.name = name; this.age = age; } Person.prototype.sayHi = function () { console.log("Hi, my name is " + this.name + " and I'm " + this.age + " years old."); } function Student(name, age, major) { Person.call(this, name, age); this.major = major; } Student.prototype = Object.create(Person.prototype); Student.prototype.constructor = Student; Student.prototype.sayMajor = function() { console.log("My major is " + this.major + "."); } let person1 = new Person("John", 30); let student1 = new Student("Mary", 25, "Computer Science"); person1.sayHi(); // Hi, my name is John and I'm 30 years old. student1.sayHi(); // Hi, my name is Mary and I'm 25 years old. student1.sayMajor(); // My major is Computer Science.
在上面的例子中,我们定义了一个Person
构造函数,在原型中添加了sayHi
方法。另外,我们定义了一个Student
构造函数,通过使用call
方法调用了Person
构造函数来初始化name
和age
属性,并添加了一个major
属性。然后,我们使用Object.create
方法创建了一个Person.prototype
的副本,并将其指定给Student.prototype
,以便Student
对象可以继承Person
对象的属性和方法。最后,我们定义了一个sayMajor
方法,用于输出学生的专业。最终,我们创建了一个Person
对象和一个Student
对象,并调用了他们的方法。
以下是使用class
实现继承的例子:
class Person { constructor(name, age) { this.name = name; this.age = age; } sayHi() { console.log("Hi, my name is " + this.name + " and I'm " + this.age + " years old.") } } class Student extends Person { constructor(name, age, major) { super(name, age); this.major = major; } sayMajor() { console.log("My major is " + this.major + "."); } } let person1 = new Person("John", 30); let student1 = new Student("Mary", 25, "Computer Science"); person1.sayHi(); // Hi, my name is John and I'm 30 years old. student1.sayHi(); // Hi, my name is Mary and I'm 25 years old. student1.sayMajor(); // My major is Computer Science.
在上面的例子中,我们定义了一个Person
类,在constructor
方法中初始化了name
和age
属性,并在sayHi
方法中输出了一个招呼。然后,我们使用extends
关键字创建了一个Student
类,并使用super
关键字调用了Person
类的constructor
方法来初始化name
和age
属性,并添加了一个major
属性。最后,我们定义了一个sayMajor
方法,用于输出学生的专业。最终,我们创建了一个Person
对象和一个Student
对象,并调用了他们的方法。
结论:
在JavaScript中,OOP是一种非常重要的概念,使用对象、构造函数、原型和类可以更好地组织代码和减少重复性。继承可以通过原型和类来实现。从ES6开始,JavaScript引入了关键字class
class
, um es zu implementieren. Klassen bieten eine sauberere, leichter verständliche Syntax zum Definieren von Objekten. 🎜🎜Das Folgende ist ein Beispiel für die Verwendung von Klassen: 🎜rrreee🎜Im obigen Beispiel verwenden wir das Schlüsselwort class
, um eine Klasse Person
zu definieren und sie im constructor Die Eigenschaften <code>name
und age
werden in der Methode initialisiert. Dann haben wir eine sayHi
-Methode definiert, um eine Begrüßung auszugeben. Schließlich haben wir zwei Person
-Objekte erstellt und deren Methode sayHi
aufgerufen. 🎜prototype
und class
erreicht werden. 🎜🎜Das Folgende ist ein Beispiel für die Verwendung von prototype
zur Implementierung der Vererbung: 🎜rrreee🎜Im obigen Beispiel definieren wir einen Person
-Konstruktor und fügen zum Prototyp sayHi hinzu
Methode. Darüber hinaus haben wir einen Student
-Konstruktor definiert und den Person
-Konstruktor mit der Methode call
aufgerufen, um name
und age-Attribute hinzugefügt und ein major
-Attribut hinzugefügt. Anschließend erstellen wir eine Kopie von Person.prototype
mit der Methode Object.create
und weisen sie Student.prototype
zu, sodass Student-Objekte können die Eigenschaften und Methoden von <code>Person
-Objekten erben. Schließlich definieren wir eine sayMajor
-Methode, um das Hauptfach des Studenten auszugeben. Schließlich haben wir ein Person
-Objekt und ein Student
-Objekt erstellt und deren Methoden aufgerufen. 🎜🎜Das Folgende ist ein Beispiel für die Verwendung von class
zum Implementieren der Vererbung: 🎜rrreee🎜Im obigen Beispiel definieren wir eine Person
-Klasse im constructor
Die Attribute name
und age
werden in der Methode initialisiert und eine Begrüßung wird in der Methode sayHi
ausgegeben. Dann haben wir eine Student
-Klasse mit dem Schlüsselwort extends
erstellt und die Klasse Person
mit dem Schlüsselwort super
aufgerufen Die Methode code>constructor initialisiert die Eigenschaften name
und age
und fügt eine Eigenschaft major
hinzu. Schließlich definieren wir eine sayMajor
-Methode, um das Hauptfach des Studenten auszugeben. Schließlich haben wir ein Person
-Objekt und ein Student
-Objekt erstellt und deren Methoden aufgerufen. 🎜🎜Fazit: 🎜🎜In JavaScript ist OOP ein sehr wichtiges Konzept, bei dem Objekte, Konstruktoren, Prototypen und Klassen verwendet werden, um Code besser zu organisieren und Duplikate zu reduzieren. Vererbung kann durch Prototypen und Klassen erreicht werden. Ab ES6 führte JavaScript das Schlüsselwort class
ein, das eine einfachere und leichter verständliche Syntax zum Definieren von Objekten bietet. Wann immer möglich, ist es wichtig, den richtigen Ansatz zum Schreiben von OOP-Code zu wählen, da dieser erhebliche Vorteile bei der Projektentwicklung und -wartung mit sich bringt. 🎜Das obige ist der detaillierte Inhalt vonWie schreibe ich „oop“ in Javascript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!