Ini
Ini adalah kata kunci dalam JavaScript. Nilai ini akan berubah tergantung pada penggunaan fungsi. Tetapi selalu ada prinsip, yaitu, ini mengacu pada objek yang memanggil fungsi.
1. Definisi
1. Ini adalah objek khusus (atau referensi ini) di dalam fungsi - mengacu pada objek lingkungan di mana fungsi dieksekusi.
2. Referensi ini adalah variabel baca-saja yang dapat digunakan kapan saja dalam kode JavaScript. Referensi referensi ini (poin ke) adalah objek yang memiliki karakteristik yang secara otomatis mengubah objek referensi sesuai dengan konteks kode. Aturan kutipannya adalah sebagai berikut:
• Dalam kode terluar, referensi ini mengacu pada objek global.
• Dalam suatu fungsi, referensi ini bervariasi sesuai dengan cara fungsi disebut. sebagai berikut
1) Panggilan Konstruktor - Referensi ini mengacu pada objek yang dihasilkan
2) Panggilan metode - Referensi ini mengacu pada objek penerima
3) Terapkan atau Panggilan - Referensi ini mengacu pada objek yang ditentukan dengan parameter Apply atau Call
4) Cara panggilan lain - referensi ini mengacu pada objek global
2. Berdasarkan informasi online di atas dan yang relevan, status penggunaan objek ini (dikutip) dirangkum sebagai berikut:
JavaScript adalah bahasa yang dinamis, dan hanya ketika kata kunci ini dijalankan dapat ditentukan. Jadi ini selalu menunjuk ke penelepon, yaitu, referensi ke "objek panggilan". Sederhananya, objek mana yang disebut metode yang disebut, ini menunjuk pada objek itu. Bergantung pada metode panggilan fungsi, ini dapat menunjuk ke objek global, objek saat ini, atau objek lainnya.
1. Panggilan fungsi global, ini dalam fungsi global akan menunjuk ke jendela objek global. (Mode panggilan fungsi)
// Daftar Kode 1 <Tipe Script = "Teks/JavaScript"> var message = "this in window"; // kalimat ini ditulis di luar fungsi dan di dalam fungsi fungsi func () {if (this == window) {waspada ("this == window"); waspada (pesan); this.methoda = function () {alert ("I'm a function");}}}} func (); // Jika metode fungsi tidak dipanggil, atribut atau metode yang ditentukan di dalamnya tidak akan diambil oleh methoda (); </script>Hasil Call of Func () adalah jendela ini ==, ini di jendela
Hasil dari panggilan ke methoda () adalah saya sebuah fungsi
2. Panggilan konstruktor, yaitu, instantiasi objek menggunakan yang baru, ini akan menunjuk pada objek yang dihasilkan melalui konstruktor. (Mode panggilan konstruktor)
Daftar Kode 2
<type script = "Text/JavaScript"> func fungsi () {if (this == window) {waspada ("this == window");} else {wind ("this! = window");} this.fielda = "I'm a field"; waspada (ini);} var obj = func baru (); waspada (obj.fielda); // Ini menunjuk pada objek obj </script>3. Memanggil metode objek, ini menunjuk ke objek saat ini. Fungsi apa pun, selama fungsi digunakan atau ditetapkan sebagai metode objek, ini di dalam fungsi adalah referensi untuk objek itu sendiri. Dapat juga dipahami bahwa ini ditulis dalam objek normal, dan ini menunjuk pada objek itu sendiri. (Mode Panggilan Metode)
(Definisi metode: fungsi sebagai properti objek disebut metode)
// Daftar Kode 3 <Tipe Script = "Text/JavaScript"> var obj = {x: 3, doit: function () {if (this == window) {waspada ("this == window");} else {alert ("metode disebut:" + this.x);}}; obj.doit (); // Ini menunjuk pada objek obj </script>4. Panggil ini melalui metode Terapkan atau Panggilan, ini menunjuk ke objek yang dilewati.
Metode Apply atau Call dapat digunakan untuk memanggil metode alih -alih objek lain. Metode panggilan mengubah konteks objek suatu fungsi dari konteks awal ke objek baru yang ditentukan oleh ThisoBJ. Jika parameter ini tidak disediakan, objek global digunakan sebagai ThisOBJ. (Terapkan mode panggilan)
// Daftar kode 4 <script type = "text/javaScript"> var obj = {x: 3, doit: function () {alert ("metode disebut:" + this.x);}}; var obj2 = {x: 4}; obj.doit (); // 3, ini menunjuk ke objobj.doit.Apply (obj2); // 4, ini menunjuk ke obj2obj.doit.call (obj2); // 4, ini menunjuk ke obj2 </script>5. Ini dalam rantai prototipe - objek prototipe dan ini di titik konstruktor ke objek instance yang baru dibuat. Gunakan metode ekstensi prototipe untuk mendapatkan contoh objek sumber menggunakan ini, dan bidang pribadi tidak dapat diperoleh melalui rantai prototipe.
// Daftar Kode 5 <Tipe Script = "Text/JavaScript"> Function func () {this.fielda = "I'm a field"; var privatefielda = "I'm a var";} func.prototype = {extleMethod: function (str) {waspada (str + ":" + this.fielda); waspada (privatefielda); // Terjadi kesalahan, bidang pribadi tidak dapat diperoleh melalui rantai prototipe. }}; var obj = func baru (); obj.extendMethod ("dari prototipe"); // Pada saat ini objek OBJ dalam rantai konstruktor dan prototipe saat ini, obj </script>6. Ini dalam penutupan - penutupan: fungsi yang ditulis dalam fungsi, ini menunjuk ke jendela objek global.
6.1 Penutupan dalam suatu objek
// Daftar kode 6 <script type = "text/javascript"> var name = "the window"; var obj = {name: "Objek saya", getNamefunc: function () {return function () {return this.name;}}}; waspada (obj.getNeFunc () () ()); // Jendela </script>Pada saat ini, ini di penutupan penutupan ke jendela objek global, dan hanya bisa mendapatkan properti dari objek global. Jadi apa yang harus saya lakukan jika properti di dalam objek (variabel fungsi eksternal) ingin diakses? Cukup simpan objek fungsi eksternal ini dalam variabel yang dapat diakses dengan penutupan. Lihat kode berikut:
// Daftar kode 7 <script type = "text/javascript"> var name = "the window"; var obj = {name: "Objek saya", getNamefunc: function () {var that = this; return function () {return that.name;}}; waspada (obj.getNamefunce () () (); // Objek saya </script>Tetapkan ini ke fungsi eksternal ke variabel itu, Anda dapat membaca variabel fungsi eksternal.
6.2 Apakah secara langsung mengacu pada fungsi atau instantiasi fungsi, ini dalam fungsi penutupan ia mengembalikan titik ke jendela.
// Daftar kode 8 <skrip type = "text/javaScript"> function a () {waspada (jendela ini == jendela); var that = this; var func = function () {wind (this == window); alert (that);}; return func;} var b = a (); b (); // Benar, Benar, [jendela objek] var c = baru a (); c (); // false, true, [objek objek] </script>7. Fungsi menggunakan metode Bind () untuk mengikat objek, dan ini akan menunjuk pada nilai yang diteruskan ke fungsi Bind ().
// Daftar Kode 9 <Tipe Script = "Text/JavaScript"> window.color = "red"; var obj = {color: "blue"}; function Saycolor () {waspada (this.color);} var objsaycolor = waycolor.bind (obj); objsaycolor (); // biru </script>8. segmen skrip yang tertanam dalam elemen html, ini menunjuk ke elemen itu sendiri
// Daftar Kode 10 <Div onClick = "test (this)" id = "div"> klik saya </div> <script type = "text/javascript"> tes fungsi (obj) {waspada (obj); // [objek htmldivelement]} </script>9. Tulis dalam Tag Script: Ini mengacu pada jendela objek global. Ini sama dengan variabel global yang disebut oleh fungsi global pada titik pertama.
Di atas adalah kutipan dari ini di JavaScript yang diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!