Apakah fungsi penutupan?Apabila anda mula mempelajari penutupan, mungkin sukar untuk semua orang fahami daripada penjelasan rasminya, ia agak berkonsepkan.
Tetapi kita masih bermula dari maksud penutupan.
Penutupan bermaksud fungsi mempunyai pembolehubah bebas dan bebas. Dalam erti kata lain, fungsi yang ditakrifkan dalam penutupan boleh "mengingat" persekitaran di mana ia dicipta.
Selepas penjelasan rasmi, mari kita lihat contoh pengiraan mudah dahulu.
var c = 0; function count(){ c++; } count();// 1 count();// 2
Contoh ini dilaksanakan menggunakan pembolehubah global, tetapi terdapat masalah di sini Pembolehubah c juga mudah dipanggil oleh kaedah lain Pada masa ini, nilai yang disimpan c mungkin berubah, menyebabkan kiraan menjadi tidak sah Bagaimana untuk menangani masalah ini dengan baik! Apa yang akan kita fikirkan ialah menggunakan pembolehubah tempatan untuk menanganinya
function count(){ var c = 0; function add(){ c++; } add(); } count();// c = 1 count();// c = 1
function count(){ var c = 0; function add(){ c++; } return add; } var ct = count(); ct(); // c = 1 ct(); // c = 2
Gunakan penutupan untuk mensimulasikan kaedah peribadi
Ini sedikit seperti kaedah persendirian atau pembolehubah persendirian JAVA, yang hanya boleh dikendalikan oleh anda sendiri. Jika anda beroperasi secara luaran, anda perlu menetapkan kaedah awam untuk beroperasi
var person = (function(){ var _name = "编程的人"; var age = 20; return { add:function(){ age++; }, jian:function(){ age--; }, getAge:function() { return age; }, getName:function(){ return _name; }, setName: function (name) { _name = name; } } })(); person.add(); var age = person.getAge(); console.log(age) person.setName("编程的人公众号:bianchengderen") console.log(person.getName())
Di atas adalah keseluruhan kandungan artikel ini saya harap ia akan membantu semua orang dalam mempelajari pengaturcaraan javascript.