Pertanyaan yang diberi tag closures

Penutupan adalah fungsi kelas satu yang merujuk ke (menutup) variabel dari ruang lingkup di mana ia didefinisikan. Jika penutupan masih ada setelah lingkup pendefinisiannya berakhir, variabel yang ditutup akan terus ada juga.

2819
Penutupan JavaScript di dalam loop - contoh praktis sederhana

На этот вопрос есть ответы на Stack Overflow на русском : Почему асинхронная функция внутри цикла цикла выполадая var funcs = []; // let's create 3 functions for (var i = 0; i < 3; i++) { // and store them in funcs funcs[i] = function() { // each should log its...

562
Penutupan JavaScript vs. fungsi anonim

Seorang teman saya dan saya saat ini sedang mendiskusikan apa itu penutupan di JS dan apa yang tidak. Kami hanya ingin memastikan bahwa kami benar-benar memahaminya dengan benar. Mari kita ambil contoh ini. Kami memiliki loop penghitungan dan ingin mencetak variabel penghitung pada konsol yang...

316
Akses ke Penutupan yang Dimodifikasi

string [] files = new string[2]; files[0] = "ThinkFarAhead.Example.Settings.Configuration_Local.xml"; files[1] = "ThinkFarAhead.Example.Settings.Configuration_Global.xml"; //Resharper complains this is an "access to modified closure" for (int i = 0; i < files.Length; i++ ) { // Resharper...

249
Apa fungsi (lambda) penutupan menangkap?

Baru-baru ini saya mulai bermain-main dengan Python dan saya menemukan sesuatu yang aneh dalam cara penutupan. Pertimbangkan kode berikut: adders=[0,1,2,3] for i in [0,1,2,3]: adders[i]=lambda a: i+a print adders[1](3) Itu membangun array sederhana fungsi yang mengambil input tunggal dan...

197
Fungsi PHP rekursif anonim

Apakah mungkin untuk memiliki fungsi PHP yang bersifat rekursif dan anonim? Ini adalah upaya saya untuk membuatnya berfungsi, tetapi tidak lulus dalam nama fungsi. $factorial = function( $n ) use ( $factorial ) { if( $n <= 1 ) return 1; return $factorial( $n - 1 ) * $n; }; print $factorial( 5...

182
var diri = ini?

Menggunakan metode instan sebagai panggilan balik untuk penangan acara mengubah ruang lingkup thisdari "Contoh saya" menjadi "Apa pun yang disebut dengan panggilan balik" . Jadi kode saya terlihat seperti ini function MyObject() { this.doSomething = function() { ... } var self = this...