Rumah >hujung hadapan web >tutorial js >Penjelasan terperinci tentang penggunaan ini dalam pengetahuan Javascript_Basic

Penjelasan terperinci tentang penggunaan ini dalam pengetahuan Javascript_Basic

WBOY
WBOYasal
2016-05-16 16:35:451284semak imbas

Saya menggunakan ini semasa temu bual beberapa hari yang lalu Penemuduga mengatakan bahawa pemahaman saya agak salah. Saya kembali dan membaca beberapa buku dan beberapa blog, melakukan beberapa ujian, dan mendapati bahawa pemahaman saya memang salah. >

1. Pembolehubah global

mestilah yang paling biasa digunakan Ini dipanggil dalam fungsi, yang sebenarnya merupakan pembolehubah global

var value="0"; function mei(){ 
 var value="1"; 
 console.log(this.value); //0  console.log(value);   //1 } 
mei();

Keluaran ialah 0 kerana ini menunjukkan kepada

global

2.Pembina

Ini adalah penggunaan yang saya lebih kenali Gunakan ini dalam pembina Selepas objek baharu, ini akan menunjuk ke objek baharu

var value="window"; function mei(){ 
 this.value=1; 
 this.show=function(){ 
  console.log(this.value) 
 } 
} var m=new mei(); 
console.log(m.value);  //1 m.show();        //1
Anda dapat melihat bahawa output adalah 1 dan bukannya tetingkap Ia dapat dilihat bahawa disebabkan oleh pembina, ini di sini sudah menunjuk ke objek baharu dan bukannya pembolehubah global

3.panggil dan mohon

Terus pinjam contoh daripada panggilan saya dan gunakan blog

 var p="456"; 
 function f1(){ 
  this.p="123"; 
 } 
 function f2() { 
  console.log(this.p); 
 } 
 f2();       //456  f2.call(f1());  //123  f2.apply(f1());  //123

Barisan pertama mengeluarkan 456 yang mudah difahami Ini menunjukkan situasi global 123 adalah kerana selepas menggunakan panggilan atau gunakan, ini dalam f2 menunjuk kepada f1, dan p dalam f1 ialah 123. Untuk penjelasan khusus. , klik sahaja pada artikel Blog itu

4. Fungsi dipanggil sebagai kaedah objek (di mana saya tersilap)

Saya diminta untuk menulis objek dengan beberapa kaedah. Saya tiba-tiba menentukan pembolehubah global, dan kemudian menggunakan ini untuk memanggilnya dalam kaedah objek. Saya berkata ia harus tingkap, kerana saya jarang menggunakan kaedah ini, dan berfikir bahawa hanya baru atau panggilan akan mengubah arah ini , saya benar-benar salah

var value="father"; function mei(){} 
mei.value="child"; 
mei.get=function(){console.log(this.value)}; 
mei.show=function(){console.log(value)}; 
mei.get();   //child mei.show();  //father

Memandangkan get dipanggil sebagai kaedah mei, ini di sini menunjuk kepada mei.value, jadi anak adalah output

Bagi bapa, saya memahaminya dengan cara ini Fungsi yang ditunjukkan oleh pertunjukan ditakrifkan dalam persekitaran global Disebabkan rantaian skop, nilainya tidak terdapat dalam pertunjukan, jadi saya mencarinya dalam persekitaran di mana ia ditakrifkan, dan kemudian saya mendapati nilai persekitaran global, jika terdapat sebarang salah faham di sini, saya harap seseorang dapat menunjukkannya.

Kenyataan:
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