Rumah >hujung hadapan web >tutorial js >Menguasai pengaturcaraan dan pewarisan berorientasikan objek dalam JavaScript

Menguasai pengaturcaraan dan pewarisan berorientasikan objek dalam JavaScript

王林
王林asal
2023-11-03 09:16:04890semak imbas

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.

  1. 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: nameage是基本属性,sayHello是一个方法。可以通过以下方式访问对象的属性和方法:

console.log(person.name); // 输出 'Tom'
person.sayHello(); // 输出 'Hello, my name is Tom'
  1. 函数

在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函数来创建一个包含nameage属性的对象。这里使用了this关键字来代表当前的对象。通过new Person('Tom', 18)语句来创建一个新的Person对象。

二、继承

继承是一种实现代码复用的方式。在JavaScript中,我们可以使用原型链来实现继承。

  1. 原型链

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.prototypeconstructor属性指向Student函数本身,这样我们在使用new关键字创建新的Student对象时,就可以调用Student自身的构造函数。

  1. ES6中的继承

在ES6中,我们可以使用class关键字来定义类。class关键字封装了functionprototype两个部分,让我们更方便地定义类。

下面是一个使用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关键字来定义PersonStudent两个类。使用extends关键字来实现继承。

使用super关键字调用父类的构造函数和方法。在Student的构造函数中,使用super(name, age)来调用Person的构造函数,实现了对父类成员属性的继承。使用super关键字调用父类的方法:super.sayHello()rrreee

    Fungsi

    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 fungsi Orang untuk mencipta objek yang mengandungi nama dan 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. 🎜
      🎜Warisan dalam ES6🎜🎜🎜Dalam ES6, kita boleh menggunakan kata kunci 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn