Rumah > Artikel > hujung hadapan web > Menguasai pengaturcaraan dan pewarisan berorientasikan objek dalam JavaScript
Dalam pembangunan web moden, JavaScript telah menjadi bahasa yang sangat diperlukan. Antaranya, pengaturcaraan berorientasikan objek (OOP) dan warisan adalah dua aspek penting dalam pembangunan JavaScript. Artikel ini akan memperkenalkan pembaca kepada pengaturcaraan dan pewarisan berorientasikan objek dalam JavaScript dan memberikan contoh kod khusus.
1. Pengaturcaraan berorientasikan objek
Pengaturcaraan berorientasikan objek ialah kaedah pengaturcaraan yang menggunakan objek sebagai unit asas program dan merangkum operasi data dan data. Dalam JavaScript, kita boleh menggunakan objek dan fungsi untuk melaksanakan pengaturcaraan berorientasikan objek.
Dalam JavaScript, objek ialah koleksi pasangan nilai kunci. Kita boleh menggunakan pendakap kerinting untuk mentakrifkan objek:
var person = { name: 'Tom', age: 18, sayHello: function() { console.log('Hello, my name is ' + this.name); } };
Dalam kod di atas, kita mentakrifkan objek dengan tiga sifat. Antaranya, name
dan age
ialah atribut asas dan sayHello
ialah kaedah. Sifat dan kaedah objek boleh diakses melalui: name
和age
是基本属性,sayHello
是一个方法。可以通过以下方式访问对象的属性和方法:
console.log(person.name); // 输出 'Tom' person.sayHello(); // 输出 'Hello, my name is Tom'
在JavaScript中,函数是一种特殊的对象。我们可以使用函数来创建对象、封装操作和定义类。下面是一个使用函数来创建对象的示例:
function Person(name, age) { this.name = name; this.age = age; this.sayHello = function() { console.log('Hello, my name is ' + this.name); } } var person = new Person('Tom', 18); person.sayHello(); // 输出 'Hello, my name is Tom'
在上面的代码中,我们定义了一个Person
函数来创建一个包含name
和age
属性的对象。这里使用了this
关键字来代表当前的对象。通过new Person('Tom', 18)
语句来创建一个新的Person
对象。
二、继承
继承是一种实现代码复用的方式。在JavaScript中,我们可以使用原型链来实现继承。
JavaScript中的对象有一个指向其原型对象的指针。我们可以通过原型对象来实现继承,即子对象继承父对象的属性和方法。
function Person(name, age) { this.name = name; this.age = age; } Person.prototype.sayHello = function() { console.log('Hello, my name is ' + this.name); } function Student(name, age, grade) { Person.call(this, name, age); this.grade = grade; } Student.prototype = Object.create(Person.prototype); Student.prototype.constructor = Student; var student = new Student('Tom', 18, 3); student.sayHello(); // 输出 'Hello, my name is Tom'
在上面的代码中,我们定义了一个Person
函数和一个Student
函数。使用Object.create()
来创建一个新的对象作为Student.prototype
,这个新的对象的原型为Person.prototype
。这样,Student
函数就可以继承Person
函数的属性和方法。
使用call()
函数来继承Person
的属性和方法:Person.call(this, name, age)
,这里的this
表示的是Student
函数创建的对象。
最后,将Student.prototype
的constructor
属性指向Student
函数本身,这样我们在使用new
关键字创建新的Student
对象时,就可以调用Student
自身的构造函数。
在ES6中,我们可以使用class
关键字来定义类。class
关键字封装了function
和prototype
两个部分,让我们更方便地定义类。
下面是一个使用ES6定义继承的例子:
class Person { constructor(name, age) { this.name = name; this.age = age; } sayHello() { console.log('Hello, my name is ' + this.name); } } class Student extends Person { constructor(name, age, grade) { super(name, age); this.grade = grade; } } let student = new Student('Tom', 18, 3); student.sayHello(); // 输出 'Hello, my name is Tom'
在上面的代码中,我们使用class
关键字来定义Person
和Student
两个类。使用extends
关键字来实现继承。
使用super
关键字调用父类的构造函数和方法。在Student
的构造函数中,使用super(name, age)
来调用Person
的构造函数,实现了对父类成员属性的继承。使用super
关键字调用父类的方法:super.sayHello()
rrreee
Dalam JavaScript, fungsi ialah sejenis objek khas. Kita boleh menggunakan fungsi untuk mencipta objek, merangkum operasi dan menentukan kelas. Berikut ialah contoh penggunaan fungsi untuk mencipta objek:
rrreee🎜 Dalam kod di atas, kami mentakrifkan fungsiOrang
untuk mencipta objek yang mengandungi umur
Objek harta itu. Kata kunci this
digunakan di sini untuk mewakili objek semasa. Buat objek Orang
baharu melalui penyataan Orang baharu('Tom', 18)
. 🎜🎜2. Warisan🎜🎜Warisan ialah cara untuk mencapai penggunaan semula kod. Dalam JavaScript, kita boleh menggunakan rantaian prototaip untuk melaksanakan pewarisan. 🎜🎜🎜Rantai Prototaip🎜🎜🎜Sesuatu objek dalam JavaScript mempunyai penunjuk ke objek prototaipnya. Kita boleh melaksanakan pewarisan melalui objek prototaip, iaitu objek anak mewarisi sifat dan kaedah objek induk. 🎜rrreee🎜Dalam kod di atas, kami mentakrifkan fungsi Orang
dan fungsi Pelajar
. Gunakan Object.create()
untuk mencipta objek baharu sebagai Student.prototype
Prototaip objek baharu ini ialah Person.prototype
. Dengan cara ini, fungsi Pelajar
boleh mewarisi sifat dan kaedah fungsi Orang
. 🎜🎜Gunakan fungsi call()
untuk mewarisi sifat dan kaedah Orang
: Person.call(ini, nama, umur)
, di mana this mewakili objek yang dicipta oleh fungsi Student
. 🎜🎜Akhir sekali, arahkan atribut constructor
Student.prototype
ke fungsi Student
itu sendiri, supaya kami menggunakan new kekunci kod> Apabila mencipta objek <code>Pelajar
baharu, anda boleh memanggil pembina Pelajar
itu sendiri. 🎜class
untuk mentakrifkan kelas. Kata kunci class
merangkum bahagian function
dan prototype
, membolehkan kami mentakrifkan kelas dengan lebih mudah. 🎜🎜Berikut ialah contoh penggunaan ES6 untuk mentakrifkan warisan: 🎜rrreee🎜Dalam kod di atas, kami menggunakan kata kunci class
untuk mentakrifkan Orang
dan PelajarDua kelas. Gunakan kata kunci <code>lanjutkan
untuk melaksanakan warisan. 🎜🎜Gunakan kata kunci super
untuk memanggil pembina dan kaedah kelas induk. Dalam pembina Pelajar
, gunakan super(name, age)
untuk memanggil pembina Person
untuk melaksanakan atribut ahli kelas induk. mewarisi. Gunakan kata kunci super
untuk memanggil kaedah kelas induk: super.sayHello()
, merealisasikan pewarisan kaedah kelas induk. 🎜🎜3. Ringkasan🎜🎜Dalam artikel ini, kami memperkenalkan pengaturcaraan dan warisan berorientasikan objek dalam JavaScript. Laksanakan pengaturcaraan berorientasikan objek dengan menggunakan objek dan fungsi, dan laksanakan warisan menggunakan rantai prototaip dan warisan ES6. Saya harap ia akan membantu semua orang untuk memahami pengaturcaraan JavaScript. 🎜
Atas ialah kandungan terperinci Menguasai pengaturcaraan dan pewarisan berorientasikan objek dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!