使用闭包

时间:2017-01-31 01:27:10

标签: javascript closures

所以我知道我需要关闭才能解决我的脚本中存在冲突计数器的问题,但请尝试我可能只是无法理解如何做到这一点。我的剧本是:

var i= 1;

function we_start_slide(gallery, img, delay)
{
    var gallery_images= JSON.parse(JSON.stringify(img));
    var img_count= img.length;

    document.getElementById(gallery + '_slide').innerHTML=gallery_images[0];
    test= setInterval(function(){we_slide_show(gallery, gallery_images, img_count)}, delay);
}
function we_slide_show(gallery, gallery_images, img_count)
{
    document.getElementById(gallery + '_slide').innerHTML=gallery_images[i];
    if(i < img_count-1) i++;
    else i=0;
}

有人可以向我解释如何使用闭包隐藏计数器变量i以便其他功能无法改变它吗?谢谢。

1 个答案:

答案 0 :(得分:1)

关闭示例:

(function(window){
  var i = 1;
  window.we_slide_show = function (gallery, gallery_images, img_count)
  {
      document.getElementById(gallery + '_slide').innerHTML=gallery_images[i];
      if(i < img_count-1) i++;
      else i=0;
  };
})(window);