Javascript Primitives vs. Objects: Menjelaskan Tanggapan
Walaupun persepsi umum bahawa "hampir semua dalam Javascript adalah objek," bukan semua entiti dalam bahasa mematuhi definisi ini. Perbezaan antara primitif dan objek ini memerlukan penjelasan.
Primitif
Berbeza dengan objek, primitif ialah nilai tidak berubah yang wujud dalam bentuk asasnya. Mereka kekurangan kaedah dan sifat, dan termasuk jenis data seperti:
Objek Pembungkus
Primitif mempunyai pembalut objek yang sepadan (String, Nombor, Boolean) yang menawarkan kaedah dan sifat. Walau bagaimanapun, primitif itu sendiri bukan objek. Untuk berinteraksi dengan sifat primitif, Javascript secara tersirat mencipta objek pembalut untuk operasi.
Contoh dengan Rentetan
Pertimbangkan coretan kod di bawah:
var s = "foo"; var sub = s.substring(1, 2); // sub is now the string "o"
Javascript secara dalaman melaksanakan perkara berikut langkah:
Percubaan Menetapkan Sifat kepada Primitif
Menetapkan sifat kepada primitif tidak mungkin dilakukan dengan berkesan kerana mana-mana sifat sedemikian akan dikaitkan dengan objek pembalut sementara dan bukan primitif itu sendiri:
var s = "foo"; s.bar = "cheese"; alert(s.bar); // undefined
Berfungsi sebagai Objek
Fungsi, sebaliknya, adalah objek tulen yang mampu diwarisi daripada kelas Objek. Mereka memiliki sifat dan boleh dimanipulasi seperti objek lain:
function foo() {} foo.bar = "tea"; alert(foo.bar); // tea
Kesimpulannya, walaupun nampaknya primitif mempunyai tingkah laku seperti objek, ia berbeza daripada objek sebenar dalam Javascript. Pembalut objek membenarkan interaksi dengan nilai primitif, tetapi primitif kekal tidak berubah. Fungsi, bagaimanapun, adalah полноценные объекты, objek lengkap yang mampu untuk semua keupayaan objek. Pemahaman ini menjelaskan hubungan antara primitif dan objek dalam bahasa Javascript.
Atas ialah kandungan terperinci Adakah Javascript Primitives Sebenarnya Objek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!