Ungkapan Fungsi dan Gelagat Statik dalam JavaScript
Apabila menggunakan kata kunci baharu dengan ungkapan fungsi JavaScript, sesetengah pembangun mungkin tersilap percaya bahawa hasil objek berkelakuan statik. Walau bagaimanapun, andaian ini tidak tepat sepenuhnya.
Kata kunci baharu mencipta tika baharu objek dan ungkapan fungsi menjadi pembina untuk contoh itu. Walaupun objek yang terhasil mungkin mempamerkan beberapa gelagat seperti statik, seperti boleh diakses tanpa instantiasi, ia masih mempunyai sifat pembina yang menunjuk kepada fungsi tanpa nama.
Pertimbangkan contoh yang disediakan:
var gameData = new function () { // ... };
Walaupun kata kunci baharu digunakan, anda masih boleh membuat instantiate objek tambahan menggunakan gameData pembina:
var gameData2 = new (gameData.constructor)();
Ini bermakna objek gameData tidak benar-benar statik. Sebaliknya, sifat pembina sedang "bocor", membenarkan berbilang kejadian dibuat. Selain itu, objek prototaip dicipta untuk gameData, yang mungkin memperkenalkan kerumitan yang tidak perlu jika pembolehubah peribadi atau warisan tidak dimaksudkan.
Untuk mencipta objek tunggal yang benar dalam JavaScript, seseorang harus mempertimbangkan untuk menggunakan corak yang berbeza seperti objek literal, mendedahkan corak modul atau fungsi pembina khusus yang menguatkuasakan satu instantiasi.
Atas ialah kandungan terperinci Adakah Ungkapan Fungsi JavaScript Dicipta dengan `baru` Benar-benar Statik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!