在jQuery中,我們經(jīng)常使用閉包來保護(hù)代碼的隱私和避免污染全局命名空間。而在使用閉包時(shí),需要注意的是如何傳遞參數(shù)。
// 例1 // 參數(shù)通過閉包的參數(shù)列表傳遞 (function($) { var myFunction = function(param1, param2) { console.log(param1); console.log(param2); }; $(document).on('click', function() { myFunction('參數(shù)1', '參數(shù)2'); }); })(jQuery);
在例子中,我們將需要傳遞的參數(shù)直接作為閉包參數(shù)列表中的變量傳入。使用方法如下:myFunction('參數(shù)1', '參數(shù)2');
// 例2 // 參數(shù)通過JavaScript的arguments對(duì)象傳遞 (function($) { var myFunction = function() { console.log(arguments[0]); console.log(arguments[1]); }; $(document).on('click', function() { myFunction('參數(shù)1', '參數(shù)2'); }); })(jQuery);
在例子中,我們沒有直接將參數(shù)傳遞給函數(shù),而是通過JavaScript的arguments對(duì)象來獲取參數(shù)。使用方法如下:console.log(arguments[0]);
總之,無論是直接傳遞參數(shù)還是通過JavaScript的arguments對(duì)象來獲取參數(shù),都是一種有效的閉包傳參技巧。在實(shí)踐中,根據(jù)實(shí)際情況選擇更合適的方式即可。