欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

廢話不多說,直接上代碼:

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

因為返回函數(shù)執(zhí)行一次后,fn = null將其設(shè)置未null,所以后面就不會執(zhí)行了。再貼一個網(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)文章

  • js實現(xiàn)簡單的輪播圖效果

    js實現(xiàn)簡單的輪播圖效果

    這篇文章主要為大家詳細(xì)介紹了js實現(xiàn)簡單的輪播圖效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • JavaScript如何優(yōu)化邏輯判斷代碼詳解

    JavaScript如何優(yōu)化邏輯判斷代碼詳解

    我們在編寫 JS 代碼時,經(jīng)常會遇到邏輯判斷復(fù)雜的情況,這篇文章主要給大家介紹了關(guān)于JavaScript如何優(yōu)化邏輯判斷代碼的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • JS面試必備之如何實現(xiàn)一個精確的倒計時

    JS面試必備之如何實現(xiàn)一個精確的倒計時

    又到了金三銀四的季節(jié)了,面試的各位同學(xué)要開始準(zhǔn)備起來了,今天主要分享一個在面試中經(jīng)常被提到的一個面試題:倒計時,希望對大家有所幫助
    2024-03-03
  • top.location.href 沒有權(quán)限 解決方法

    top.location.href 沒有權(quán)限 解決方法

    以前好像沒有遇到這問題,也可能是沒有在意吧,我的blog內(nèi)容頁都是有判斷的,規(guī)則是,如果top.location不是內(nèi)容頁的話就跳到內(nèi)容頁
    2008-08-08
  • open 動態(tài)修改img的onclick事件示例代碼

    open 動態(tài)修改img的onclick事件示例代碼

    動態(tài)修改img的onclick事件,使用open也可輕松做到,下面有個不錯的示例,需要的朋友可以參考下
    2013-11-11
  • Bootstrap modal 多彈窗之疊加顯示不出彈窗問題的解決方案

    Bootstrap modal 多彈窗之疊加顯示不出彈窗問題的解決方案

    Bootstrap modal 多彈窗之疊加顯示不出彈窗問題,今天小編抽時間給大家分享下解決方案,需要的朋友參考下
    2017-02-02
  • JS比較兩個數(shù)值的大小實例

    JS比較兩個數(shù)值的大小實例

    下面小編就為大家?guī)硪黄狫S比較兩個數(shù)值的大小實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • js canvas實現(xiàn)5張圖片合成一張圖片

    js canvas實現(xiàn)5張圖片合成一張圖片

    這篇文章主要為大家詳細(xì)介紹了js canvas實現(xiàn)5張圖片合成一張圖片,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • JavaScript三元表達(dá)式示例詳解

    JavaScript三元表達(dá)式示例詳解

    這篇文章主要給大家介紹了關(guān)于JavaScript三元表達(dá)式的相關(guān)資料,三元運算符是JavaScript僅有的使用三個操作數(shù)的運算符,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • 用js解決數(shù)字不能換行問題

    用js解決數(shù)字不能換行問題

    當(dāng)一串?dāng)?shù)字的時候,很多瀏覽器不能自動換行,所以可以借助js來實現(xiàn)。
    2010-08-08

最新評論