js規定函式只能執行一次程式碼例項

admin發表於2017-04-15

分享一段程式碼例項,它實現了規定函式只能執行一次的功能。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
function once(fn, context) {
  var result;
  return function () {
    if (fn) {
      result = fn.apply(context || this, arguments);
      fn = null;
    }
    return result;
  };
}
 
var canOnlyFireOnce = once(function () {
  console.log("螞蟻部落");
});
canOnlyFireOnce();
canOnlyFireOnce();

上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。

一.程式碼註釋:

(1).function once(fn, context) {},fn是要執行一次的函式,context規定fn函式的呼叫物件,也就是執行上下文。

(2).var result,宣告一個變數,用來儲存fn函式執行的返回結果。

(3).return function () {

  if (fn) {

    result = fn.apply(context || this, arguments);

    fn = null;

  }

  return result;

},返回函式物件,函式執行一次之後,就將其設定為null,所以只能執行一次。

二.相關閱讀:

(1).apply()可以參閱js apply()一章節。

(2).arguments可以參閱javascript arguments一章節。

相關文章