201105072131利用自我執行 anonymous function 避免重覆運算

JavaScript 偵測瀏覽器是否支援 Flash 中的範例 isIOS 為例:

function isIOS() {
  var ua = navigator.userAgent;
  return (
      ua.match(/iPad/i) ||
      ua.match(/iPhone/i) ||
      ua.match(/iPod/i)
    ) ? true : false;
}

在同一個網頁中都不會改變,存成變數應該是比較好的選擇:

var isIOS = function() {
  var ua = navigator.userAgent;
  return (
      ua.match(/iPad/i) ||
      ua.match(/iPhone/i) ||
      ua.match(/iPod/i)
    ) ? true : false;
}();

如果要保持函式的形式,也可以改成這樣,讓判斷只做一次:

var isIOS = function() {
  var ua = navigator.userAgent,
      answer = (
            ua.match(/iPad/i) ||
            ua.match(/iPhone/i) ||
            ua.match(/iPod/i)
        ) ? true : false;
  
  return function() {
    return answer;
  }
}();
延伸
回應
Google 站內搜尋
BloggerAds
累積 | 今日
loading......
    沒有新回應!





Powered by Xuite