Rumah  >  Artikel  >  hujung hadapan web  >  Adakah Rentetan dan Nombor Benar-benar Objek dalam JavaScript?

Adakah Rentetan dan Nombor Benar-benar Objek dalam JavaScript?

Patricia Arquette
Patricia Arquetteasal
2024-11-12 02:38:02705semak imbas

Are Strings and Numbers Really Objects in JavaScript?

Menyahkod Enigma Objek JavaScript

Dalam bidang JavaScript, kewujudan objek di mana-mana sering menimbulkan persoalan. Walaupun tatasusunan dan fungsi mempamerkan gelagat seperti objek, merungkai sifat misteri "String" dan "Nombor" boleh membingungkan.

Sifat Nilai Primitif yang Sukar difahami

Bertentangan dengan kepercayaan popular, bukan semua dalam JavaScript adalah objek. Unsur teras seperti rentetan, nombor dan boolean dikelaskan sebagai primitif, dicirikan oleh sifatnya yang tidak berubah. Tidak seperti objek sebenar, primitif tidak mempunyai kaedah dan sifat.

Ilusi Objektif

JavaScript menggunakan helah bijak untuk menjadikan primitif kelihatan seperti objek. Apabila cuba mengakses sifat primitif (cth., s.substring(1, 2)), JavaScript mencipta objek pembalut dengan lancar (cth., String(s)) yang mempunyai kaedah yang diingini. Walau bagaimanapun, pembalut ini berumur pendek, hilang sebaik sahaja pelaksanaan kaedah selesai.

Bukti: Harta Yang Tidak Boleh Dicapai

Ilusi ini menjadi jelas apabila memberikan sifat kepada primitif , yang akhirnya terbukti sia-sia. Pertimbangkan kod:

var s = "foo";
s.bar = "cheese";
alert(s.bar); // undefined

Walaupun memperuntukkan harta kepada s primitif, percubaan untuk mendapatkan semula ia menghasilkan yang tidak ditentukan. Ini kerana sifat itu dilampirkan pada objek pembalut fana, yang dibuang apabila kaedah selesai.

Fungsi: Objek Benar

Berbeza dengan primitif, fungsi JavaScript ialah objek yang sah, mewarisi daripada prototaip Objek. Ini memberi mereka keupayaan untuk memiliki sifat dan melaksanakan mana-mana kaedah berasaskan objek.

Penugasan Harta dalam Fungsi

Fungsi boleh bertindak sebagai objek biasa, membenarkan penetapan harta dan pengambilan semula :

function foo() {}
foo.bar = "tea";
alert(foo.bar); // tea

Dengan memahami perbezaan antara objek primitif dan sah dalam JavaScript, kami menghilangkan kekeliruan yang mengelilingi tanggapan meluas bahawa "hampir semuanya adalah objek."

Atas ialah kandungan terperinci Adakah Rentetan dan Nombor Benar-benar Objek dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn