Adakah Objek Fungsi, Rentetan dan Nombor dalam JavaScript?
Reputasi JavaScript untuk mengisytiharkan hampir segalanya sebagai objek boleh membingungkan, terutamanya untuk pemula. Walaupun benar bahawa objek, dengan kaedah dan sifatnya, memainkan peranan penting, primitif seperti rentetan, nombor dan fungsi berkelakuan agak berbeza.
Nilai Primitif lwn. Objek
Dalam JavaScript, nilai primitif tidak boleh diubah dan tidak boleh diakses melalui tatatanda titik. Walau bagaimanapun, JavaScript menyediakan objek pembungkus (String, Nombor dan Boolean) yang memberikan primitif dengan kaedah dan sifat seperti objek.
Objek Pembungkus
Objek pembungkus dicipta di belakang adegan apabila mengakses sifat primitif. Contohnya, dalam kod:
var s = "foo"; var sub = s.substring(1, 2);
JavaScript mencipta objek String secara senyap, memanggil kaedah subrentetan() dan kemudian membuang objek tersebut. Sub pembolehubah kini mengandungi rentetan primitif "o."
Walaupun nampaknya anda boleh menetapkan sifat kepada primitif, tugasan ini sebenarnya dilakukan pada objek pembalut yang dibuang serta-merta. Oleh itu, mendapatkan semula sifat sedemikian menghasilkan tidak ditentukan, seperti yang ditunjukkan dalam contoh berikut:
var s = "foo"; s.bar = "cheese"; alert(s.bar); // undefined
Fungsi sebagai Objek
Tidak seperti primitif, fungsi ialah objek lengkap yang mewarisi daripada Object. Mereka boleh mempunyai sifat, seperti yang dilihat dalam kod ini:
function foo() {} foo.bar = "tea"; alert(foo.bar); // tea
Ringkasnya, primitif sememangnya tidak mempunyai ciri objek dalam JavaScript. Walau bagaimanapun, objek pembalut menyediakan fasad tingkah laku seperti objek, manakala fungsi ialah objek sebenar yang boleh berinteraksi dengan sifat dan kaedah. Perbezaan ini penting untuk memahami sistem jenis JavaScript dan membuat keputusan pengekodan termaklum.
Atas ialah kandungan terperinci Adakah Fungsi, Rentetan dan Nombor Sebenarnya Berkelakuan Seperti Objek dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!