Rumah hujung hadapan web tutorial js Analisis contoh penggunaan fungsi JS kemahiran this_javascript

Analisis contoh penggunaan fungsi JS kemahiran this_javascript

May 16, 2016 pm 04:15 PM
js this fungsi penggunaan

Contoh dalam artikel ini menerangkan penggunaan fungsi JS ini. Kongsikan dengan semua orang untuk rujukan anda. Butirannya adalah seperti berikut:

Apabila menulis fungsi dalam js, ini banyak digunakan Apakah ini kata kunci dan penunjuk, menunjuk kepada skop persekitaran pelaksanaan, juga dipanggil konteks.
Mari kita bincangkan tentang fungsi dahulu. Pemahaman peribadi saya ialah fungsi ialah blok kod yang dipanggil berulang kali dalam bahasa.
Dalam JS, apabila memberikan fungsi kepada sifat objek, ia dipanggil kaedah
Seperti:

var m={};
m.title='title';
m.show=function(){
alert(this.title)
}
m.show()

Salin selepas log masuk

Adalah untuk memanggil fungsi sebagai kaedah objek m
Dalam kes ini, ini menunjukkan kepada objek m.

Memanggil nama fungsi secara langsung dipanggil fungsi:

var a=1212;
function show(){
alert(a)//1212
}
show()// 1212

Salin selepas log masuk

Dalam persekitaran global, pembolehubah global boleh difahami sebagai sifat tetingkap, dan fungsi global ialah kaedah tetingkap
Lihat contoh di bawah:

var m ={};
m.id='mmm';
m.show=function(){
  alert(this.id);
}
var a={};
a.id='aaa';
a.show=m.show;
a.show(); //aaa

a.show=m.show;  先理解这句话,因为函数是个对象,
m.show=function(){
  alert(this.id)
}

Salin selepas log masuk

Ungkapan ini bersamaan dengan a.show dan m.show secara serentak merujuk

function(){
  alert(this.id)
}
Salin selepas log masuk

sebenarnya bersamaan dengan

a.show=function(){
  alert(this.id)
}
Salin selepas log masuk

Jadi apabila memanggil a.show(), ini menunjuk ke objek,
Lihatlah berangan berikut

var m ={};
m.id='mmm'
m.show=function(){
  alert(this.id)
}
var a={}
a.id='aaa'
a.show=function(){
  m.show()
};
a.show(); //mmm
Salin selepas log masuk

Jadi apabila memanggil a.show(), ia bersamaan dengan memanggil kaedah m.show(), jadi ini menunjuk ke objek m.

Lihat contoh berikut sekali lagi saya masih tidak faham pada mulanya

var color='red';
var app = {};
app.color="green";
app.paint=function(node){
node.style.color=this.color;
  alert(this.color);
}
function findNode(callback){
  var btn =document.querySelector('.btn');
  callback(btn);//传进来,
}
findNode(app.paint);
alert(this.color); //red 而不是green

Salin selepas log masuk

Apabila parameter fungsi diluluskan, parameter diluluskan mengikut nilai, bukan dengan rujukan

Jadi apabila findNode(app.paint); ia sebenarnya

function(node){
  node.style.color=this.color;
  alert(this.color);
}
Salin selepas log masuk
Rujukan

dan kerana findNode ditakrifkan secara global, ini menunjukkan kepada WINDOW ATAU UNDEFINED

Perihal menghantar parameter, luluskannya mengikut nilai

function show(a){
  alert(a)
}
Salin selepas log masuk

Mudah difahami apabila parameter adalah jenis data asas

var b=10;
show(b)//alert(10);
Salin selepas log masuk

Bagi objek

var c ={};
c.prop=true;
var showProp=function(obj){
obj.prop=false
}
showProp(c); //c.prop = false
Salin selepas log masuk

Sesetengah orang berpendapat bahawa contoh di atas menghantar parameter melalui rujukan
Sebenarnya, parameter di atas masih diteruskan oleh nilai Apabila showProp(c) melepasi c ke dalam fungsi, c sebenarnya bersamaan dengan rujukan dalam fungsi adalah bersamaan dengan menukar objek yang dirujuk kepada {prop: palsu}

Lihat contoh berikut

var c ={};
c.prop=true;
var showProp=function(obj){
  obj = new Object();
  obj.prop=false
  return obj;
}
showProp(c);
alert(c.prop); //true
Salin selepas log masuk

Obj masuk telah diubah suai di sini Jika parameter diluluskan dengan rujukan mengikut fungsi, pengubahsuaian dalam fungsi pasti akan ditunjukkan secara luaran

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)

Petua untuk mencipta fungsi baharu secara dinamik dalam fungsi golang Petua untuk mencipta fungsi baharu secara dinamik dalam fungsi golang Apr 25, 2024 pm 02:39 PM

Petua untuk mencipta fungsi baharu secara dinamik dalam fungsi golang

Pertimbangan untuk susunan parameter dalam penamaan fungsi C++ Pertimbangan untuk susunan parameter dalam penamaan fungsi C++ Apr 24, 2024 pm 04:21 PM

Pertimbangan untuk susunan parameter dalam penamaan fungsi C++

Bagaimana untuk menulis fungsi yang cekap dan boleh diselenggara di Jawa? Bagaimana untuk menulis fungsi yang cekap dan boleh diselenggara di Jawa? Apr 24, 2024 am 11:33 AM

Bagaimana untuk menulis fungsi yang cekap dan boleh diselenggara di Jawa?

Perbandingan kelebihan dan kekurangan parameter lalai fungsi C++ dan parameter pembolehubah Perbandingan kelebihan dan kekurangan parameter lalai fungsi C++ dan parameter pembolehubah Apr 21, 2024 am 10:21 AM

Perbandingan kelebihan dan kekurangan parameter lalai fungsi C++ dan parameter pembolehubah

Koleksi lengkap formula fungsi excel Koleksi lengkap formula fungsi excel May 07, 2024 pm 12:04 PM

Koleksi lengkap formula fungsi excel

Apakah faedah fungsi C++ mengembalikan jenis rujukan? Apakah faedah fungsi C++ mengembalikan jenis rujukan? Apr 20, 2024 pm 09:12 PM

Apakah faedah fungsi C++ mengembalikan jenis rujukan?

Penggunaan lanjutan parameter rujukan dan parameter penunjuk dalam fungsi C++ Penggunaan lanjutan parameter rujukan dan parameter penunjuk dalam fungsi C++ Apr 21, 2024 am 09:39 AM

Penggunaan lanjutan parameter rujukan dan parameter penunjuk dalam fungsi C++

Apakah perbezaan antara fungsi PHP tersuai dan fungsi yang telah ditetapkan? Apakah perbezaan antara fungsi PHP tersuai dan fungsi yang telah ditetapkan? Apr 22, 2024 pm 02:21 PM

Apakah perbezaan antara fungsi PHP tersuai dan fungsi yang telah ditetapkan?

See all articles