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.
Dalam bahasa OO tradisional, penunjuk ini dinyatakan dalam kelas dan mewakili objek itu sendiri. Dalam JavaScript, ini mewakili konteks saat ini, yaitu referensi penelepon.
******* Ini selalu menunjuk pada pemilik (objek fungsi)
Objek ini dan global:
var a = 1; fungsi foo () {var b = 2; console.log (this.a+b); // 3} foo (); // Pemilik fungsi foo adalah jendela, dan ini mengacu pada objek jendela dalam fungsi global (************ kecuali metode baru, panggilan, terapkan digunakan untuk mengubah hubungan referensi ini)Ini dan objek:
var person = {name: 'theo wong', jenis kelamin: 'laki -laki', getName: function () {console.log (this.name); // pemilik fungsi getName adalah objek orang}}; person.getName ();Ini dalam fungsi bersarang
var myobject = {func1: function () {console.log (this); // myObject var func2 = function () {console.log (this); // window var func3 = function () {console.log (this); // window} (); } (); }}; myobject.func1 (); // Dalam fungsi bersarang, karena konteks eksekusi fungsi bersarang adalah jendela, ini mengacu pada objek jendela. Faktanya, ini adalah bug di ECMA-262-3, yang telah ditetapkan dalam ECMA-262-5 terbaruIni dalam pemrosesan acara:
var showValue = function () {alert (this.Value); };1. <input id = "test" type = "text" />
Acara pengikat melalui dom.onClick, document.geteLementById ('test'). Onclick = showValue;
Pada saat ini, showValue disebut sebagai metode dom, jadi ini harus merujuk pada objek DOM, bukan objek jendela lagi
2. Tuliskan di tag html, <input id = "test" type = "text" onclick = "showValue ();" />
Saat mengklik DOM, kami tidak bisa mendapatkan yang benar ini. Ini saat ini mengacu pada objek jendela. Karena tidak ada nilai yang ditentukan dalam objek jendela, ini. Nilai tidak dapat diperoleh.
*** Pada saat ini, itu tidak menetapkan fungsi showValue ke onklick objek DOM, tetapi referensi. Pada saat ini, pemilik fungsi () adalah jendela
document.geteLementById ('test'). onClick = function () {showValue ();}Mendengarkan acara yang mengikat melalui addeventListener/attachEvent
<input type = "text" id = "test" /> <script type = "text /javascript"> var dom = document.geteLementById ('test'); id = 'window'; function test () {alert (this.id); } dom.addeventListener? dom.addeventListener ('klik', tes, false): dom.attachevent ('ontClick', test); // Tes AddEventListener // Window Window Lampiran </script> // Cara ini mengikat pemantauan peristiwa, lampiran ini adalah objek jendela, dan AddEventListener adalah objek DOMIni dan konstruk:
fungsi obj (name, usia) {this.name = name; this.age = usia; this.fun = function () {alert (this.name); }; } var obj = new obj ('xht', 18); // Ini mengacu pada objek baru ini, baru mengubah hubungan referensi dari obj.fun (); // xht iniIni dan panggil
// Tentukan seseorang dengan nama jack var jack = {name: "jack", usia: 26} // Tentukan orang lain dengan nama abruzzi var abruzzi = {name: "abruzzi", usia: 26} // tentukan fungsi objek fungsi global warname () {return this.name; } // Atur konteks peringatan ke jack, dan ini saat ini adalah jack ware (alertName.call (jack)); // Atur konteks peringatan ke Abruzzi, dan ini pada saat ini adalah peringatan abruzzi (alertName.call (abruzzi));Kutipan adalah topik yang relatif menarik. Tidak seperti bahasa lain, referensi dalam JavaScript selalu menunjukkan objek akhir, bukan referensi itu sendiri.
var obj = {}; // objek kosong var ref = obj; // referensi obj.name = "Objecta"; peringatan (nama ref.); // Ref lalu tambahkan atribut nama obj = ["satu", "dua", "tiga"]; // OBJ menunjuk ke objek lain (objek array) peringatan (ref.name); // Ref juga menunjuk ke peringatan objek asli (obj.length); // 3 Peringatan (Ref.Length);OBJ hanyalah referensi ke objek anonim, jadi Ref tidak menunjukkannya.
Referensi hanya dapat menunjuk ke objek tertentu. Ketika objek spesifik berubah, referensi atau referensi ke objek asli, daripada objek yang diubah.
Di atas adalah informasi tentang penunjuk ini dan referensi dalam 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!