prototipe javascript dan warisan [duplikat]
Pertanyaan saya adalah Objek terakhir pada rantai prototipe semua objek mewarisi properti dan metode darinya bagaimana metode mewarisi dari Function.prototype, mengapa Object.__proto__ === Function.prototype// benar, mengapa Object.__proto__tidak null.
Jawaban
Dasar Objectdalam JavaScript harus memiliki cara agar bisa dipakai, jadi itu membutuhkan prototypeobjek untuk membantu dalam baris seperti ini:
let myObj = new Object();
Dan itulah mengapa Object.__proto__tidak null.
The Functionobjek adalah jenis khusus dari objek yang memfasilitasi Instansiasi objek melalui constructor dan bila digunakan dengan cara ini dikenal sebagai "fungsi konstruktor". Jadi, masuk akal untuk Objectmewarisi dari suatu Functionobjek sehingga instance objek dapat dibuat.
Fungsi juga merupakan objek. Jadi itu mewarisi dari Object juga.
Tapi jangan bingung Object.__proto__. Itu adalah sesuatu yang ditambahkan browser dan sebenarnya bukan bagian dari bahasa. Jadi, jangan mengandalkan atau menggunakannya.
Pada dasarnya, Function.prototypeadalah Object.__proto__.