javascript - Soalan tentang ini
给我你的怀抱
给我你的怀抱 2017-07-05 11:06:26
0
6
917

Seperti yang ditunjukkan dalam gambar, adakah anda ingin bertanya kepada semua orang, mengapa parameter pertama tetingkap foo.call()?

给我你的怀抱
给我你的怀抱

membalas semua(6)
女神的闺蜜爱上我

Malah, kunci kepada masalah ialah kita tidak memahami peranan fungsi panggilan/guna. Dalam istilah rasmi, ini bermakna menukar konteks skop, tetapi di sini konteks setempat ditukar kepada tetingkap. Sebenarnya, panggilan/terapkan adalah kaedah "membunuh seseorang dengan pisau yang dipinjam", iaitu, jika anda tidak mempunyai atribut atau kaedah tertentu, dan kemudian anda ingin memanggil atribut atau kaedah objek lain, ia adalah juga kaedah pelaksanaan pewarisan objek.

小葫芦

Sebenarnya, ia tidak semestinya Windows, dan lebih baik menggunakan panggilan Anda hanya perlu mengisytiharkan var that=this dalam f dan menulis ini daripada fungsi penutupan ini kerana fungsi penutupan tidak boleh secara langsung dapatkan pembolehubah persekitaran fungsi atas Anda hanya boleh mendapat angin, jadi kenyataan itu ok Jika anda tidak faham, anda boleh bertanya kepada saya

滿天的星座

Jika ia adalah bahagian hadapan, fungsi ini mempunyai parameter yang tidak kelihatan ini, yang secara lalai menghala ke tetingkap pembolehubah global.
Melainkan anda menukar objek yang ditunjuk oleh ini, seperti foo.call (objek lain)
Ayat asal menggunakan parameter lalai ini
Anotasi dengan jelas menyatakan bahawa ini menghala ke tetingkap

Saya akan menulis beberapa ayat lagi, jika tidak, saya akan menjelaskannya

var foo = function () {
  console.log(this.x);
}
foo();为什么this指向window呢

Selain itu, semantik ini adalah untuk menunjuk kepada objek yang memanggil fungsi ini.
Setiap fungsi memerlukan objek untuk dipanggil
obj.f() bermakna f dipanggil oleh obj
Jika bahagian hadapan tidak menyatakan objek panggilan, lalai ialah tetingkap pembolehubah global untuk memanggil fungsi

刘奇

Apabila JavaScript direka, ini dalam fungsi dalaman (iaitu fungsi dalam badan fungsi) akan terikat pada objek global (iaitu tetingkap saya rasa ulasan di sini foo.call(window) hanya perlu menggunakan bahasa js untuk menjelaskan mengapa ini.x masuk). foo() akan mengeluarkan 10.

曾经蜡笔没有小新

Ia tidak mengatakan bahawa parameter pertama foo.call mestilah tetingkap Perkara utama soalan ialah untuk memahami apa itu panggilan.

https://developer.mozilla.org...

阿神

Anda boleh memahami fungsi dan perbezaan panggilan, gunakan, dan ikat

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan