Rumah >hujung hadapan web >tutorial js >Bagaimanakah Kata Kunci `baru` Berfungsi dalam JavaScript untuk Mencipta Objek dan Melaksanakan Warisan?

Bagaimanakah Kata Kunci `baru` Berfungsi dalam JavaScript untuk Mencipta Objek dan Melaksanakan Warisan?

Linda Hamilton
Linda Hamiltonasal
2024-12-24 12:24:11996semak imbas

How Does the `new` Keyword Work in JavaScript to Create Objects and Implement Inheritance?

Meneroka Kata Kunci 'baharu' dalam JavaScript

Memahami Kata Kunci 'baharu'

Dalam JavaScript, kata kunci 'baharu' memainkan peranan penting dalam penciptaan objek dan konsep pewarisan. Walaupun reputasi JavaScript sebagai bahasa bukan berorientasikan objek, ia memperkenalkan pendekatan unik kepada pengaturcaraan berasaskan objek melalui kata kunci 'baharu'.

Tujuan Kata Kunci 'baharu'

Kata kunci 'baru' mempunyai beberapa tanggungjawab utama:

  1. Objek Penciptaan: Ia memulakan penciptaan objek baharu.
  2. Tetapan Prototaip: Ia menetapkan sifat dalaman [[prototaip]] objek yang baru dicipta kepada objek prototaip luaran fungsi pembina.
  3. Rujukan 'ini': Ia memberikan pembolehubah 'ini' kepada objek yang baru dicipta.
  4. Invokasi Pembina: Ia mencetuskan pelaksanaan fungsi pembina dengan objek yang baru dicipta sebagai konteks.
  5. Pemulangan Objek: Ia mengembalikan objek yang baru dibuat, melainkan fungsi pembina mengembalikan objek bukan nol rujukan.

Memahami [[prototaip]] dan Sifat 'prototaip'

  • [[prototaip]] Sifat: Sifat dalaman ini unik untuk setiap objek dan menyimpan rujukan kepada prototaip objek. Ia tidak boleh diubah suai secara langsung tetapi boleh diakses menggunakan Object.getPrototypeOf().
  • Harta 'prototaip': Ini ialah harta boleh diakses eksklusif untuk objek berfungsi. Ia membenarkan akses kepada objek prototaip yang akan dikongsi oleh semua kejadian yang dibuat menggunakan fungsi sebagai pembina.

Contoh Penciptaan Objek dengan 'baharu'

function ObjMaker() { this.a = 'first'; }
// 'ObjMaker' is the constructor function

ObjMaker.prototype.b = 'second';
// 'ObjMaker.prototype' is the prototype object

obj1 = new ObjMaker();
// 'new' creates a new 'obj1' object, assigns the prototype, and executes 'ObjMaker'

obj1.a; // 'first'
obj1.b; // 'second'
// 'obj1' inherits 'b' from 'ObjMaker.prototype' while still accessing its own property 'a'

Hierarki Pewarisan dengan 'baru'

Melalui kata kunci 'baharu', JavaScript membenarkan model pewarisan berasaskan prototaip. Dengan menetapkan sifat [[prototaip]], objek mewarisi sifat dan kaedah daripada prototaip pembinanya. Ini membolehkan penciptaan subkelas yang memanjangkan kelas sedia ada, seperti ini:

function SubObjMaker() {}
SubObjMaker.prototype = new ObjMaker(); // deprecated, use Object.create() now

SubObjMaker.prototype.c = 'third';
obj2 = new SubObjMaker();

obj2.c; // 'third'
obj2.b; // 'second'
obj2.a; // 'first'
// 'obj2' inherits 'c' from 'SubObjMaker.prototype', 'b' from 'ObjMaker.prototype', and 'a' from 'ObjMaker'

Ringkasnya, kata kunci 'baharu' dalam JavaScript bukan sahaja memudahkan penciptaan objek tetapi juga membolehkan mekanisme pewarisan fleksibel yang menyerupai berasaskan kelas pengaturcaraan.

Atas ialah kandungan terperinci Bagaimanakah Kata Kunci `baru` Berfungsi dalam JavaScript untuk Mencipta Objek dan Melaksanakan Warisan?. 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