Ingat kotak P3K dari bab 3? . Enkapsulasi, atau pemotongan seperti itu, di mana kita memperlakukan koleksi sebagai tunggal, merupakan bagian penting dari cara kita sebagai manusia mengatasi informasi yang kompleks, baik dalam bahasa maupun dalam memori. Ketika diperlukan, kita dapat mempertimbangkan elemen-elemen yang menyusun kit. antiseptik, plester, perban, dan sebagainya Show Di sini kami baru saja menggunakan Ekspresi Fungsi untuk membuat fungsi dan menugaskannya ke properti 2 objekMaka kita bisa menyebutnya sebagai 3. Pengguna sekarang dapat berbicaraFungsi yang merupakan properti dari suatu objek disebut metodenya Jadi, di sini kita punya metode 4 dari objek 1Tentu saja, kita bisa menggunakan fungsi yang telah dideklarasikan sebagai metode, seperti ini _Pemrograman berorientasi objek Saat kita menulis kode kita menggunakan objek untuk mewakili entitas, singkatnya itu disebut pemrograman berorientasi objek. “OOP” OOP adalah hal yang besar, ilmu tersendiri yang menarik. Bagaimana cara memilih entitas yang tepat? . Elemen Perangkat Lunak Berorientasi Objek yang Dapat Digunakan Kembali” oleh E. Gama, R. Helm, R. Johnson, J. Vissides atau "Analisis dan Desain Berorientasi Objek dengan Aplikasi" oleh G. Booch, dan lainnya Ada sintaks yang lebih pendek untuk metode dalam objek literal
Seperti yang ditunjukkan, kita dapat menghilangkan _6 dan hanya menulis 7Sejujurnya, notasi tidak sepenuhnya identik. Ada perbedaan halus yang terkait dengan pewarisan objek (akan dibahas nanti), tetapi untuk saat ini hal itu tidak menjadi masalah. Di hampir semua kasus, sintaks yang lebih pendek lebih disukai Biasanya metode objek perlu mengakses informasi yang disimpan dalam objek untuk melakukan tugasnya Misalnya, kode di dalam _3 mungkin memerlukan nama 1Untuk mengakses objek, metode dapat menggunakan kata kunci 0Nilai 0 adalah objek "sebelum titik", yang digunakan untuk memanggil metodeContohnya
Di sini selama pelaksanaan _3, nilai 0 akan menjadi 1Secara teknis, ini juga memungkinkan untuk mengakses objek tanpa 0, dengan merujuknya melalui variabel luar
… Tapi kode seperti itu tidak bisa diandalkan. Jika kami memutuskan untuk menyalin _1 ke variabel lain, mis. g. _7 dan menimpa 1 dengan sesuatu yang lain, maka itu akan mengakses objek yang salahItu ditunjukkan di bawah ini
Jika kita menggunakan _9 alih-alih 0 di dalam 1, maka kode akan berfungsiDalam JavaScript, kata kunci 0 berperilaku tidak seperti kebanyakan bahasa pemrograman lainnya. Itu dapat digunakan dalam fungsi apa pun, meskipun itu bukan metode objekTidak ada kesalahan sintaks dalam contoh berikut
Nilai _0 dievaluasi selama run-time, tergantung pada konteksnyaMisalnya, di sini fungsi yang sama ditugaskan ke dua objek berbeda dan memiliki "ini" yang berbeda dalam panggilan
Aturannya sederhana. jika _4 dipanggil, maka 0 adalah 6 selama panggilan 7. Jadi _1 atau 9 pada contoh di atasMemanggil tanpa objek. Kami bahkan dapat memanggil fungsi tanpa objek sama sekali
Dalam hal ini 0 adalah 2 dalam mode ketat. Jika kami mencoba mengakses 9, akan terjadi kesalahanDalam mode non-ketat nilai 0 dalam kasus seperti itu akan menjadi objek global ( 5 di browser, kita akan membahasnya nanti di bab Objek global). Ini adalah perilaku historis yang 6 diperbaikiBiasanya panggilan seperti itu adalah kesalahan pemrograman. Jika ada 0 di dalam suatu fungsi, fungsi tersebut diharapkan dipanggil dalam konteks objekKonsekuensi dari Jika Anda berasal dari bahasa pemrograman lain, maka Anda mungkin terbiasa dengan gagasan " 0 terikat", di mana metode yang didefinisikan dalam suatu objek selalu memiliki 0 referensi objek ituDalam JavaScript 0 adalah "gratis", nilainya dievaluasi pada waktu panggilan dan tidak bergantung pada di mana metode dideklarasikan, melainkan pada objek apa yang "sebelum titik"Konsep run-time dievaluasi _0 memiliki plus dan minus. Di satu sisi, suatu fungsi dapat digunakan kembali untuk objek yang berbeda. Di sisi lain, fleksibilitas yang lebih besar menciptakan lebih banyak kemungkinan kesalahanDi sini posisi kita bukan untuk menilai apakah keputusan desain bahasa ini baik atau buruk. Kami akan mengerti bagaimana bekerja dengannya, bagaimana mendapatkan keuntungan dan menghindari masalah Fungsi panah itu spesial. mereka tidak memiliki "milik" 0. Jika kita mereferensikan 0 dari fungsi seperti itu, ini diambil dari fungsi luar "normal"Misalnya, di sini _5 menggunakan 0 dari metode luar 3 0Itu adalah fitur khusus dari fungsi panah, ini berguna ketika kita sebenarnya tidak ingin memiliki 0 yang terpisah, melainkan mengambilnya dari konteks luar. Nanti di bab Fungsi panah ditinjau kembali, kita akan masuk lebih dalam ke fungsi panah
Nilai _0 didefinisikan pada saat run-time
Harap dicatat bahwa fungsi panah itu spesial. mereka tidak memiliki 0. Ketika _0 diakses di dalam fungsi panah, itu diambil dari luar
Bisakah Anda meletakkan fungsi di objek JavaScript?Anda dapat bekerja dengan fungsi seolah-olah itu adalah objek . Misalnya, Anda dapat menetapkan fungsi ke variabel, ke elemen array, dan ke objek lainnya. Mereka juga dapat diedarkan sebagai argumen ke fungsi lain atau dikembalikan dari fungsi tersebut. Satu-satunya perbedaan dengan objek adalah bahwa fungsi dapat dipanggil.
Bagaimana cara menambahkan fungsi pada objek di JavaScript?Sintaks . functionName adalah nama fungsi yang ada newMethodName adalah nama metode yang akan ditambahkan parameter1, parameter2. paramN adalah parameter yang akan diteruskan ke metode baru Bagaimana cara menggunakan fungsi di dalam objek dalam JavaScript?Anda tidak perlu lagi menentukan kata kunci fungsi saat mendefinisikan fungsi di dalam objek . Opsi pertama dengan fungsi bernama. const myObj = { myMethod(params) { //. lakukan sesuatu di sini }, myOtherMethod(params) { //. lakukan sesuatu di sini}, Obj bersarang. {MetodeSayaNested(params) { //. lakukan sesuatu di sini } } };
Bagaimana cara melewatkan fungsi dalam objek JavaScript?Untuk membuat objek, gunakan kata kunci new bersamaan dengan fungsi Object() Object(), lalu tambahkan properti ke objek ini. This function passes the parameter as an object and helps to display it using the display() function. |