Rumah >hujung hadapan web >tutorial js >Object.create vs. baru: Bila Menggunakan Mana untuk Pewarisan JavaScript?

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

Barbara Streisand
Barbara Streisandasal
2024-11-15 12:06:031126semak imbas

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 adalah 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 ingin mencipta objek baharu yang mewarisi sifat dan kaedah tertentu daripada objek induk.

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

const newModel = Object.create(baseModel);

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");

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);

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
    ...
}

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!

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