Rumah hujung hadapan web tutorial js Analisis yang mendalam dan ringkas tentang penggunaan ini dalam kemahiran JavaScript_javascript

Analisis yang mendalam dan ringkas tentang penggunaan ini dalam kemahiran JavaScript_javascript

May 16, 2016 pm 04:00 PM
javascript

Contoh dalam artikel ini menerangkan penggunaan ini dalam javaScript. Kongsikan dengan semua orang untuk rujukan anda. Analisis khusus adalah seperti berikut:

Semasa saya belajar JavaScript dahulu, saya tidak dapat memahami ini. Ini tidak semudah ini di java. Saya kemudian memahaminya selepas membaca banyak artikel yang ditulis oleh orang lain. Sekarang saya beralih kepada apa yang ditulis oleh orang lain, supaya saya tidak melupakannya kemudian.

Secara amnya, terdapat tiga jenis arah untuk ini. Menunjuk ke tetingkap global, objek dan pembina.

Kesimpulan: Dalam Javascript, ini menunjuk ke objek semasa apabila fungsi itu dilaksanakan. Secara ringkasnya, objek mana yang dimiliki oleh kaedah yang dipanggil, ini menunjukkan objek itu.

1. Tetingkap global

Kod ringkas

var message = "this in window";
var printMessage = function(){
  console.info(this === window);
  console.info(this.message);
};
printMessage();
Salin selepas log masuk

Oleh kerana kaedah panggilan printMessage milik tetingkap, hasil output ialah:

benar ini dalam tetingkap

Sekarang jika anda menukar kod menjadi lebih rumit

var message = "this in window";
var printMessage = function(){
  console.info(this === window);
  console.info(this.message);
};
var obj = {
  message: 'this in obj',
  printMsg : function(){
 printMessage();
  }
};
obj.printMessage();
Salin selepas log masuk

Pada masa ini, kaedah printMessage adalah milik tetingkap, jadi ini masih menunjuk ke tetingkap. Kaedah obj.printMessage tergolong dalam objek obj Lihat analisis di bawah.

Jadi hasil output masih: benar ini dalam tetingkap

2. Objek

Sekarang lihat pada objek dan tukar sedikit kod

var message = "this in window";
var printMessage = function(){
  console.info(this === window);
  console.info(this.message);
};
var obj = {
  message: 'this in obj',
  printMessage : window.printMessage
};
obj.printMessage();
Salin selepas log masuk

Hasil:

palsu ini dalam obj

Ya, anda betul. Ia masih merupakan kesimpulan daripada langkah sebelumnya Kaedah obj.printMessage tergolong dalam objek obj, jadi ini menunjukkan kepada obj.

Baiklah, jangan risau lagi, lihat kod:

var message = "this in window";
var printMessage = function(){
  console.info(this === window);
  console.info(this.message);
};
var obj = {
  message: 'this in obj',
  printMessage : function(){
 var obj2 = {
   message:'this in obj2',
   printMessage: window.printMessage
 };
 obj2.printMessage();
  }
};
obj.printMessage();
Salin selepas log masuk

Panggilan terakhir ialah obj2.printMessage(), jadi apabila ini dilaksanakan, ini ialah obj2

Hasil:

salah, ini dalam obj2

Haha, adakah sama seperti yang anda fikirkan. Siapa yang memanggilnya tunjuk kepada siapa.

3

var Person = function(){
  this.age = 1;
  this.name = 'no name';
};
var p = new Person();
console.info('age = ' + p.age);
console.info('name = ' + p.name);
Salin selepas log masuk
Hasil:

umur = 1 nama = tiada nama.

Jadi apa yang pembina lakukan untuk ini? "

Memahami rantaian prototaip javaScript dalam istilah mudah

" yang disebut sebelum ini termasuk analisis yang baharu.

var Person = function(){};
var p = new Person();
Salin selepas log masuk
Proses baharu dibahagikan kepada tiga langkah berikut:
(1) var p={}; iaitu, mulakan objek p

(2) p.__proto__ = Orang.prototaip;
(3) Person.call(p); iaitu membina p, yang juga boleh dipanggil permulaan p

Kemudian mari kita bercakap tentang panggilan.

kaedah panggilan

Berlaku pada: Objek fungsi

Panggil kaedah pada objek untuk menggantikan objek semasa dengan objek lain.


panggil([thisObj[,arg1[, arg2[, [,.argN]]]]])

Parameter:

thisObj

Pilihan. Objek yang akan digunakan sebagai objek semasa.
arg1, arg2, , argN
Pilihan. Urutan parameter kaedah akan diluluskan.

Penerangan:

Kaedah panggilan boleh digunakan untuk memanggil kaedah bagi pihak objek lain. Kaedah panggilan menukar konteks objek fungsi daripada konteks awal kepada objek baharu yang ditentukan oleh thisObj. Jika parameter thisObj tidak disediakan, objek Global digunakan sebagai thisObj.


Jelaskan bahawa fungsi kaedah panggilan sebenarnya adalah untuk menukar titik ini kaedah lalai. Kaedah panggilan mestilah objek kaedah Apabila panggilan dipanggil, titik ini objek kaedah akan menjadi parameter pertama kaedah panggilan.

var p = Orang baharu();

Apabila Orang pembina dipanggil, ia boleh diproses melalui panggilan, supaya ini dalam Orang menghala ke p This.age = 1 adalah bersamaan dengan p.age = 1, supaya atribut umur ditambahkan pada p.

Saya harap artikel ini akan membantu reka bentuk pengaturcaraan JavaScript semua orang.

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk melaksanakan sistem pengecaman pertuturan dalam talian menggunakan WebSocket dan JavaScript Bagaimana untuk melaksanakan sistem pengecaman pertuturan dalam talian menggunakan WebSocket dan JavaScript Dec 17, 2023 pm 02:54 PM

Bagaimana untuk melaksanakan sistem pengecaman pertuturan dalam talian menggunakan WebSocket dan JavaScript

WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata Dec 17, 2023 pm 05:30 PM

WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata

Bagaimana untuk melaksanakan sistem tempahan dalam talian menggunakan WebSocket dan JavaScript Bagaimana untuk melaksanakan sistem tempahan dalam talian menggunakan WebSocket dan JavaScript Dec 17, 2023 am 09:39 AM

Bagaimana untuk melaksanakan sistem tempahan dalam talian menggunakan WebSocket dan JavaScript

Cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata Cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata Dec 17, 2023 pm 12:09 PM

Cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata

Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Jan 05, 2024 pm 06:08 PM

Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP

JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap Dec 17, 2023 pm 05:13 PM

JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap

Bagaimana untuk menggunakan insertBefore dalam javascript Bagaimana untuk menggunakan insertBefore dalam javascript Nov 24, 2023 am 11:56 AM

Bagaimana untuk menggunakan insertBefore dalam javascript

Bagaimana untuk mendapatkan kod status HTTP dalam JavaScript dengan cara yang mudah Bagaimana untuk mendapatkan kod status HTTP dalam JavaScript dengan cara yang mudah Jan 05, 2024 pm 01:37 PM

Bagaimana untuk mendapatkan kod status HTTP dalam JavaScript dengan cara yang mudah

See all articles