Akademi JavaScript · Pelajaran

Rantaian Prototaip dan Asas Sifat Sendiri

Asas rantaian prototaip; semak sifat sendiri berbanding sifat diwarisi; gunakan Object.create; tetapkan penerang mudah.

Pelajaran 1 daripada 28 langkah

Rantaian Prototaip dan Asas Sifat Sendiri ialah pelajaran Akademi JavaScript percuma di CoddyKit. Ini ialah pelajaran 1 daripada 2. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Akademi JavaScript, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Akademi JavaScript merangkumi sejumlah 2 pelajaran.

Pengenalan kepada prototaip

Matlamat: Lihat cara objek mewarisi melalui rantai prototaip dan cara membezakan kunci sendiri daripada kunci diwarisi.

  • Rantai prototaip
  • hasOwn berbanding in
  • Object.create
  • Deskriptor asas
Rantaian Prototaip dan Asas Sifat Sendiri — ilustrasi 1

Carian prototaip

Jika kunci tidak ditemui pada objek, JavaScript akan menyemak prototaipnya, contohnya Object.prototype.

// A simple object
const user = { name: "Ayla" };

// The prototype is another object used for fallback lookups
const proto = Object.getPrototypeOf(user);

console.log("name:", user.name);
console.log("has toString?", typeof user.toString === "function");
console.log("proto same as Object.prototype?", proto === Object.prototype);
Rantaian Prototaip dan Asas Sifat Sendiri — ilustrasi 2

Sendiri berbanding diwarisi

Object.hasOwn(obj, key) mengembalikan true hanya untuk kunci sendiri. "key" in obj turut merangkumi kunci yang diwarisi.

// Own vs inherited checks
const point = { x: 1 };

// "in" sees own or inherited
console.log("x in point:", "x" in point);
console.log("toString in point:", "toString" in point);

// Only own keys
console.log("hasOwn x:", Object.hasOwn(point, "x"));
console.log("hasOwn toString:", Object.hasOwn(point, "toString"));
Rantaian Prototaip dan Asas Sifat Sendiri — ilustrasi 3

Asas Object.create

Object.create(proto) menghasilkan objek yang mewarisi daripada proto.

// Use Object.create to set a prototype
const animal = { kind: "animal" };

// pet inherits from animal
const pet = Object.create(animal);
pet.name = "Milo";

console.log("pet name:", pet.name);
console.log("pet kind (inherited):", pet.kind);
console.log("hasOwn kind?", Object.hasOwn(pet, "kind"));
Rantaian Prototaip dan Asas Sifat Sendiri — ilustrasi 4

Deskriptor (ringkas)

Object.defineProperty boleh menetapkan bendera seperti boleh ditulis dan boleh dihitung untuk sesuatu kunci.

// Define simple descriptors
const prefs = {};
Object.defineProperty(prefs, "theme", {
  value: "dark",
  writable: false,
  enumerable: true
});

// Try to change (silently fails in non-strict)
prefs.theme = "light";

console.log("theme:", prefs.theme);

// List keys: theme is enumerable
console.log("keys:", Object.keys(prefs));
Rantaian Prototaip dan Asas Sifat Sendiri — ilustrasi 5

Petua dan senarai semak

Petua:

  • Gunakan Object.hasOwn(obj, key) untuk menguji kunci sendiri.
  • Utamakan Object.create(proto) untuk menghasilkan prototaip kecil.
  • Hadkan penggunaan deskriptor pada peringkat awal; nilai lalai sudah memadai.
Rantaian Prototaip dan Asas Sifat Sendiri — ilustrasi 6

Kuiz sendiri berbanding diwarisi

Semakan ringkas: Ujian sifat sendiri.

Rantaian Prototaip dan Asas Sifat Sendiri — ilustrasi 7

Ringkasan

Ringkasan: Enjin mencari kunci yang tiada pada prototaip. Gunakan hasOwn untuk kunci sendiri sahaja, Object.create untuk menetapkan prototaip, dan deskriptor untuk mengawal bendera asas.

Rantaian Prototaip dan Asas Sifat Sendiri — ilustrasi 8
Percuma untuk bermula

Pelajari JavaScript dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
59
Pelajaran
200

Soalan Lazim

Adakah pelajaran “Rantaian Prototaip dan Asas Sifat Sendiri” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Akademi JavaScript, termasuk “Rantaian Prototaip dan Asas Sifat Sendiri”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Akademi JavaScript merangkumi sejumlah 2 pelajaran.

Apakah yang akan saya pelajari dalam “Rantaian Prototaip dan Asas Sifat Sendiri”?

Asas rantaian prototaip; semak sifat sendiri berbanding sifat diwarisi; gunakan Object.create; tetapkan penerang mudah. Anda berlatih Akademi JavaScript menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Akademi JavaScript?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Akademi JavaScript di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 2.

Berapa lamakah pelajaran “Rantaian Prototaip dan Asas Sifat Sendiri” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Akademi JavaScript ini?

Ya. Setiap pelajaran Akademi JavaScript menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Rantaian Prototaip dan Asas Sifat Sendiri
  2. Sintaks Kelas (Pratonton): constructor, kaedah, static, extends
← Kembali ke Akademi JavaScript