Contoh ini menjelaskan penggunaan fungsi JS ini. Bagikan untuk referensi Anda. Dengan rincian sebagai berikut:
Saat menulis fungsi di JS, ini banyak digunakan. Apa sebenarnya ini? Ini adalah kata kunci, pointer, menunjuk ke ruang lingkup lingkungan eksekusi, juga disebut konteksnya.
Mari kita bicara tentang fungsi terlebih dahulu. Secara pribadi, saya mengerti bahwa fungsi adalah blok kode yang disebut berulang kali dalam bahasa.
Di JS, ketika suatu fungsi ditugaskan ke properti objek, itu disebut metode
menyukai:
var m = {}; m.title = 'title'; m.show = function () {alert (this.title)} m.show ()Itu untuk memanggil fungsi sebagai metode objek m
Dalam hal ini, ini menunjuk pada objek m.
Nama fungsi panggilan langsung disebut fungsi:
var a = 1212; function show () {alert (a) // 1212} show () // 1212Dalam lingkungan global, variabel global dapat dipahami sebagai properti jendela, dan fungsi global adalah metode jendela
Lihat contoh berikut:
var m = {}; m.id = 'mmm'; m.show = function () {alert (this.id);} var a = {}; a.id = 'aaa'; a.show = m.show; a.show (); //aaaa.show=m.show; Pahami kalimat ini terlebih dahulu, karena suatu fungsi adalah objek, m.show = function () {alert (this.id)}Ekspresi ini setara dengan mengacu pada A.Show dan M.Show pada saat yang sama
function () {alert (this.id)}Sebenarnya setara dengan
a.show = function () {alert (this.id)}Jadi ketika A.Show () dipanggil, ini menunjuk ke objek A,
Lihatlah kastanye berikut
var m = {}; m.id = 'mmm'm.show = function () {alert (this.id)} var a = {} a.id =' aaa'a.show = function () {m.show ()}; a.show (); // mmmmJadi ketika memanggil a.show (), setara dengan memanggil metode m.show (), jadi ini. menunjuk ke objek M.
Lihatlah contoh berikut, saya masih tidak terlalu memahaminya di awal
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); // lulus,} findNode (app.paint); waspada (this.color); // merah bukannya hijauKetika suatu fungsi melewati argumen, ia memberikan argumen sesuai dengan nilai, bukan referensi
Jadi ketika findnode (app.paint); ditransmisikan, sebenarnya
function (node) {node.style.color = this.color; waspada (this.color);}, karena FindNode didefinisikan secara global, ini menunjuk ke jendela atau tidak terdefinisi;
Tentang Parameter Melewati, Melewati Nilai Lampau
Function Show (a) {alert (a)}Mudah dimengerti ketika parameter adalah tipe data dasar
var b = 10; show (b) // waspada (10);
Adapun objek
var c = {}; c.prop = true; var showprop = function (obj) {obj.prop = false} showprop (c); //c.prop=falseBeberapa orang berpikir bahwa contoh di atas adalah lulus parameter sesuai dengan referensi
Bahkan, di atas masih melewati parameter sesuai dengan nilainya. Ketika showprop (c) melewati C ke dalam fungsi, C sebenarnya setara dengan referensi. Fungsi memiliki obj.prop = false, yang setara dengan mengubah objek yang direferensikan menjadi {prop: false}
Lihatlah contoh berikut
var c = {}; c.prop = true; var showprop = function (obj) {obj = objek baru (); obj.prop = false return obj;} showprop (c); waspada (c.prop); //BENARDi sini, OBJ yang masuk telah dimodifikasi. Jika Anda melewati parameter sesuai dengan fungsi dengan referensi, modifikasi di dalam fungsi pasti akan tercermin di luar.
Saya harap artikel ini akan membantu pemrograman JavaScript semua orang.