3 Nisan 2020 Cuma

Closure

Örnek
Bir düğmeye tıklanınca setInterval() çalıştırılsın, tekrar tıklanınca iptal edilsin isteyelim.Bu durumda setInterval() çağrısının sonucunu saklamamız gerekir. Ancak sonucu global bir değişkende değil click() içine verilen function'da tanımlamak isteyelim. Bu durumda Closure kullanmak gerekir.
Şöyle yaparız.
$("#run").click((function(){
    var run; //Closure tanımlanıyor
    return function() {
      var $this = $(this);
      if($this.text() === "run"){
        run = setInterval(()=>{
          model.run();
        },50);
        $this.text("stop");
      }
      else{
        clearInterval(run);
        $this.text("run");
      }
    } //End of return function
  }() //Return edilen function çalıştırılır
));//click içine verilen function

Hiç yorum yok:

Yorum Gönder