Pertama-tama, harus dikatakan bahwa inti dari ini tidak dapat ditentukan ketika fungsi didefinisikan, hanya ketika fungsi dieksekusi dapat ditentukan kepada siapa yang ditunjuk ini, pada kenyataannya, poin terakhir dari ini adalah objek yang memanggilnya (ada beberapa masalah dengan kalimat ini, dan akan dijelaskan nanti mengapa ada masalah, meskipun sebagian besar artikel di Internet mengatakan ini, meskipun dalam banyak kasus tidak akan ada masalah dengan pemahaman itu, tetapi sebenarnya pemahaman itu tidak akurat, Jadi ketika Anda memahami hal ini, Anda akan memiliki perasaan tidak memahami), jadi saya akan mengeksplorasi masalah ini secara mendalam.
Tesnya adalah sebagai berikut:
Ini memiliki nilai yang berbeda untuk tujuan fungsi yang berbeda. Secara umum, ini adalah objek lingkungan tempat fungsi berjalan. Penggunaan ini dibahas secara rinci dalam empat situasi.
Kasus 1: Panggilan fungsi murni
Ini adalah penggunaan fungsi yang paling umum, dan ini adalah panggilan global, jadi ini mewakili objek global. Lihat kode di bawah ini, berjalan dengan hasil 1.
Kasus 2: Panggilan sebagai metode objek
Fungsi ini juga dapat disebut sebagai metode objek, dalam hal ini mengacu pada objek induk.
Kasus 3 Panggilan sebagai konstruktor
Yang disebut konstruktor adalah melalui fungsi ini, objek baru dapat dihasilkan. Pada titik ini, ini mengacu pada objek baru ini.
Hasil lari adalah 1. Untuk menunjukkan bahwa ini bukan objek global saat ini, kami membuat beberapa perubahan pada kode:
Hasil lari adalah 2, menunjukkan bahwa nilai variabel global x tidak berubah sama sekali.
Kasus 4 terapkan panggilan
apply() adalah metode fungsi yang mengubah objek pemanggil fungsi. Parameter pertamanya mewakili objek yang diubah yang memanggil fungsi. Oleh karena itu, ini mengacu pada parameter pertama ini.
Ketika parameter apply() kosong, objek global dipanggil secara default. Oleh karena itu, hasil eksekusi adalah 0, membuktikan bahwa ini mengacu pada objek global.
Jika Anda mengubah baris kode terakhir menjadi
Hasil berjalan menjadi 1, membuktikan bahwa ini mewakili obj objek.
(Akhir)
Referensi:
Login hyperlink terlihat.
Login hyperlink terlihat.
|