Object.create vs. baru: Bila Menggunakan Mana untuk Pewarisan JavaScript?

Barbara Streisand
Lepaskan: 2024-11-15 12:06:03
asal
1000 orang telah melayarinya

Object.create vs. new: When to Use Which for JavaScript Inheritance?

JavaScript Inheritance: Object.create vs. new

Dalam JavaScript, warisan boleh dicapai melalui pelbagai kaedah. Dua pendekatan yang biasa dibincangkan ialah menggunakan kata kunci baharu dan Object.create. Apabila meneroka warisan, jumlah pilihan yang tersedia boleh menjadi membingungkan.

Untuk menjelaskan cara yang paling diterima untuk mencapai warisan dalam JavaScript, mari kita terokai perbezaan antara Object.create dan baharu.

Object.create

Object.create digunakan untuk mencipta objek baharu yang diwarisi daripada objek lain. Ia tidak menggunakan fungsi pembina objek induk. Ini berguna apabila anda hanya mahu mencipta objek baharu yang mewarisi sifat dan kaedah tertentu daripada objek induk.

const baseModel = {
  property1: "value1",
  method1: function() {}
};

const newModel = Object.create(baseModel);
Salin selepas log masuk

Dalam contoh ini, newModel mewarisi sifat1 dan kaedah1 daripada baseModel.

baharu

Kata kunci baharu memanggil fungsi pembina kelas atau objek dan mencipta tika baharu bagi kelas atau objek itu. Ia menggunakan fungsi pembina dan dengan itu memulakan objek baharu dengan sifat dan kaedah tertentu.

class BaseModel {
  constructor(property1) {
    this.property1 = property1;
  }

  method1() {}
}

const newModel = new BaseModel("value1");
Salin selepas log masuk

Dalam contoh ini, newModel ialah contoh kelas BaseModel dengan property1 dimulakan kepada "value1".

Memilih Pendekatan yang Tepat

Pilihan antara Object.create dan new bergantung pada sama ada anda perlu mencipta objek baharu yang mewarisi sifat dan kaedah atau menggunakan fungsi pembina induk objek.

  • Gunakan Object.create apabila anda hanya mahu mencipta objek yang mewarisi objek lain tanpa memanggil pembina.
  • Gunakan baharu apabila anda perlu mencipta instance a kelas atau objek dan gunakan pembinanya.

Dalam senario yang diberikan, anda ingin mempunyai Model objek asas yang anda boleh lanjutkan dengan RestModel atau LocalStorageModel. Menggunakan Object.create (atau shimnya) ialah cara yang betul kerana anda tidak mahu mencipta contoh baharu Model dan memanggil pembinanya.

RestModel.prototype = Object.create(Model.prototype);
Salin selepas log masuk

Jika anda mahu memanggil pembina Model pada RestModels, gunakan call() atau apply() sebaliknya:

function RestModel() {
    Model.call(this); // apply Model's constructor on the new object
    ...
}
Salin selepas log masuk

Atas ialah kandungan terperinci Object.create vs. baru: Bila Menggunakan Mana untuk Pewarisan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan