最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js只執(zhí)行1次的函數(shù)示例

 更新時(shí)間:2016年07月20日 11:38:39   投稿:daisy  
本文通過(guò)代碼示例給大家展示了如何讓javascript只執(zhí)行一次,如何實(shí)現(xiàn)這種功能呢?通過(guò)下面這段就可以輕松搞定了。

在我們?nèi)粘i_(kāi)發(fā)的時(shí)候,經(jīng)常會(huì)碰到一種這樣的情況:想讓某個(gè)函數(shù)只執(zhí)行一次,特別是在一些循環(huán)或定時(shí)執(zhí)行的時(shí)候。

廢話(huà)不多說(shuō),直接上代碼:

function runOnce(fn, context) { //控制讓函數(shù)只觸發(fā)一次
  return function () {
    try {
      fn.apply(context || this, arguments);
    }
    catch (e) {
      console.error(e);//一般可以注釋掉這行
    }
    finally {
      fn = null;
    }
  }
}
 
// Usage 1:
var a = 0;
var canOnlyFireOnce = runOnce(function () {
  a++;
  console.log(a);
});
 
canOnlyFireOnce(); //1
canOnlyFireOnce(); // nothing
canOnlyFireOnce(); // nothing
 
// Usage 2:
var name = "張三";
var canOnlyFireOnce = runOnce(function () {
  console.log("你好" + this.name);
});
canOnlyFireOnce(); //你好張三
canOnlyFireOnce(); // nothing
 
// Usage 3:
var obj = {name: "天涯孤雁", age: 24};
var canOnlyFireOnce = runOnce(function () {
  console.log("你好" + this.name);
}, obj);
canOnlyFireOnce(); //你好天涯孤雁
canOnlyFireOnce(); // nothing

因?yàn)榉祷睾瘮?shù)執(zhí)行一次后,fn = null將其設(shè)置未null,所以后面就不會(huì)執(zhí)行了。再貼一個(gè)網(wǎng)上別人分享的代碼,道理一樣的:

function once(fn, context) { 
  var result;
 
  return function() { 
    if(fn) {
      result = fn.apply(context || this, arguments);
      fn = null;
    }
 
    return result;
  };
}
 
// Usage
var canOnlyFireOnce = once(function() {
  console.log('Fired!');
});
 
canOnlyFireOnce(); // "Fired!"
canOnlyFireOnce(); // nothing

以上就是為大家整理讓javascript只執(zhí)行一次的函數(shù)示例,有需要的可以參考。

相關(guān)文章

最新評(píng)論

四会市| 常熟市| 佛山市| 临夏县| 斗六市| 广丰县| 平原县| 大理市| 滕州市| 顺昌县| 团风县| 新和县| 措勤县| 察隅县| 凤山县| 贵南县| 榆社县| 平利县| 三台县| 微博| 游戏| 宜川县| 瓮安县| 重庆市| 井陉县| 安义县| 大厂| 云浮市| 老河口市| 盐津县| 曲靖市| 政和县| 康定县| 涪陵区| 革吉县| 宿州市| 滁州市| 从江县| 吴川市| 平安县| 博兴县|