修复一个闭包的缺陷

    xiaoxiao2021-12-14  21

    /*闭包缺陷*/ ( function ($){ var  result =  new   Array (), i =  0 ; for (;i< 10 ;i++){ result[i] =  function (){ return  i; }; } $.RES1 = result; })(jQuery); // 执行数组中的函数

    $.RES1[0]();

    由于闭包返回的是循环后的变量10,所以为了修复这一缺陷,有了如下代码:

    /*修复闭包缺陷*/ (function($){ var result = new Array(), i = 0; for(;i<10;i++){ result[i] = function(num){ return function(){ return num; } }(i); } $.RES2 = result; })(jQuery); //调用闭包函数 console.log($.RES2[0]());

    转载请注明原文地址: https://ju.6miu.com/read-968964.html

    最新回复(0)