Rumah >hujung hadapan web >tutorial js >Adakah JavaScript Primitif Benar-benar Objek?
Sifat Menarik Objek JavaScript
Dalam kedalaman pengaturcaraan, dunia JavaScript memberikan kelainan yang tidak dijangka: bukan semuanya objek . Walaupun banyak teks pengenalan membayangkan bahawa "hampir segala-galanya" berada di bawah klasifikasi ini, pemeriksaan lebih dekat mendedahkan kebenaran yang berbeza.
Pada terasnya, objek merangkum fungsi melalui kaedah dan sifat. Tatasusunan, misalnya, sesuaikan acuan ini dengan pasangan nilai kunci yang wujud. Walau bagaimanapun, apabila ia berkaitan dengan "String", "Nombor" dan "fungsi", garisan menjadi kabur.
Entiti ini mungkin kelihatan serupa dengan fungsi, melakukan transformasi pada input dan menghasilkan output tanpa akses yang jelas kepada sifat atau kaedah. Notasi titik kekal tidak wujud dengan jelas dalam kes sedemikian.
Teka-teki Pembungkus
Menyingkap misteri, kami mendedahkan perbezaan yang halus: primitif ini, seperti yang diketahui, tidak mempunyai intipati sebenar objek. Sebaliknya, mereka dibalut dengan pakaian objek, iaitu String, Number, dan Boolean. Pembalut ini mempunyai kaedah dan sifat, memberikan ilusi tingkah laku objek.
Sebagai contoh, pertimbangkan kod ini:
var s = "foo"; var sub = s.substring(1, 2); // sub becomes "o"
Di sebalik tabir, JavaScript melakukan satu siri langkah tersembunyi:
Ilusi Sifat
Walaupun nampaknya primitif boleh mempunyai sifat yang diberikan kepada mereka, percubaan sedemikian terbukti sia-sia seperti yang ditunjukkan oleh contoh berikut:
var s = "foo"; s.bar = "cheese"; alert(s.bar); // undefined
Ini berlaku kerana sifat ditakrifkan pada objek pembungkus Rentetan yang fana, yang dibuang segera, menjadikan harta itu tidak boleh diakses.
Fungsi: Objek dalam Penyamaran
Tidak seperti primitif, fungsi ialah objek lengkap yang diwarisi daripada Objek. Ini bermakna mereka memiliki semua keupayaan objek, termasuk keupayaan untuk memiliki sifat mereka sendiri. Saksikan contoh ini:
function foo() {} foo.bar = "tea"; alert(foo.bar); // tea
Untuk Menyimpulkan
Dalam JavaScript, tidak semuanya memakai mantel objek. Primitif, disamarkan oleh pembungkus objek, mencipta ilusi tingkah laku objek. Hanya melalui pemahaman yang lebih mendalam tentang kerumitan JavaScript, sifat sebenar objeknya menjadi jelas.
Atas ialah kandungan terperinci Adakah JavaScript Primitif Benar-benar Objek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!