亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

檢測一個函數是否是JavaScript原生函數的小技巧

2019-11-20 12:57:25
字體:
來源:轉載
供稿:網友

在我的開發工作中經常會遇到需要判斷一個函數是否是JavaScript原生函數的情況,有時候這是一個很必要的工作,你需要知道這個函數是瀏覽器自身提供的,還是由第三方封裝、偽裝成原生函數。當然,最好的方法是考察執行這個函數的toString方法的返回值。

The JavaScript

完成這個任務的方法非常簡單:

復制代碼 代碼如下:

function isNative(fn) {
 return (//{/s*/[native code/]/s*/}/).test('' + fn);
}

toString方法會返回這個方法的字符串形式,然后用正則表達式判斷里面包含的字符。

更強悍的方法

Lodash的創始人John-David Dalton找到了一個更佳的方案:

復制代碼 代碼如下:

;(function() {

  // Used to resolve the internal `[[Class]]` of values
  var toString = Object.prototype.toString;
 
  // Used to resolve the decompiled source of functions
  var fnToString = Function.prototype.toString;
 
  // Used to detect host constructors (Safari > 4; really typed array specific)
  var reHostCtor = /^/[object .+?Constructor/]$/;

  // Compile a regexp using a common native method as a template.
  // We chose `Object#toString` because there's a good chance it is not being mucked with.
  var reNative = RegExp('^' +
    // Coerce `Object#toString` to a string
    String(toString)
    // Escape any special regexp characters
    .replace(/[.*+?^${}()|[/]////]/g, '//$&')
    // Replace mentions of `toString` with `.*?` to keep the template generic.
    // Replace thing like `for ...` to support environments like Rhino which add extra info
    // such as method arity.
    .replace(/toString|(function).*?(?=///()| for .+?(?=///])/g, '$1.*?') + '$'
  );
 
  function isNative(value) {
    var type = typeof value;
    return type == 'function'
      // Use `Function#toString` to bypass the value's own `toString` method
      // and avoid being faked out.
      ? reNative.test(fnToString.call(value))
      // Fallback to a host object check because some environments will represent
      // things like typed arrays as DOM methods which may not conform to the
      // normal native pattern.
      : (value && type == 'object' && reHostCtor.test(toString.call(value))) || false;
  }
 
  // export however you want
  module.exports = isNative;
}());


現在你也看到了,很復雜,但更強大。當然,這不是為了做安全防護,它只是給你提供是否是原生函數的相關信息。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲免费影视第一页| 欧美日韩另类字幕中文| 俺去了亚洲欧美日韩| 精品久久久久久久久中文字幕| 久久亚洲精品一区| 福利微拍一区二区| 亚洲福利视频免费观看| 欧美日韩国产精品一区| 国语自产在线不卡| 国产成人av在线播放| 97久久国产精品| 久久亚洲影音av资源网| 日韩av第一页| 国产精品人成电影在线观看| 神马国产精品影院av| 精品视频在线导航| 亚洲精品乱码久久久久久金桔影视| 欧洲s码亚洲m码精品一区| 欧美国产日产韩国视频| 亚洲精品久久久久久久久| 高跟丝袜欧美一区| 国产精品视频地址| 欧美激情视频一区二区三区不卡| 精品中文视频在线| 久久影院模特热| 欧美精品久久久久久久久| 国产精品美腿一区在线看| 青青青国产精品一区二区| 在线播放亚洲激情| 国产精品一区av| 尤物九九久久国产精品的分类| 亚洲a中文字幕| 国产一区二区三区在线观看网站| 日本国产欧美一区二区三区| 亚洲夜晚福利在线观看| 国产精品亚洲美女av网站| 亚洲福利在线看| 欧美激情视频在线观看| 69**夜色精品国产69乱| 97色在线视频| 国产欧美精品xxxx另类| 久久99久国产精品黄毛片入口| 欧美一级高清免费| www.99久久热国产日韩欧美.com| 欧洲成人在线视频| 国产精品午夜一区二区欲梦| 欧美激情国产日韩精品一区18| 久久香蕉频线观| 成人在线观看视频网站| 欧美中文在线字幕| 韩日精品中文字幕| 久久久久久久久91| 国产精品成人免费视频| 亚洲男人天堂2023| 久久精品国产电影| 精品欧美激情精品一区| 国产在线不卡精品| 久久精品电影网| 午夜精品久久久久久久99热浪潮| 国产精品久久一| 欧美日韩一区二区三区在线免费观看| 国产又爽又黄的激情精品视频| 日韩中文视频免费在线观看| 欧美电影免费观看大全| 91精品国产成人| 欧美性色19p| 日韩中文字幕网站| 日韩免费av一区二区| 黄色91在线观看| 久久亚洲精品小早川怜子66| 久久夜色撩人精品| 亚州成人av在线| 亚洲综合日韩中文字幕v在线| 欧美另类精品xxxx孕妇| 成人在线观看视频网站| 亚洲精品网站在线播放gif| 精品国产一区二区三区久久久| 国产精品久久久久久久久久久久久久| 丝袜亚洲欧美日韩综合| 九九久久国产精品| 欧美日韩一区二区三区| 日韩在线精品视频| 91久久久亚洲精品| 日韩av网站大全| 国产69精品99久久久久久宅男| 中文字幕在线视频日韩| 欧美一级片在线播放| 精品国产美女在线| 97精品国产91久久久久久| 精品动漫一区二区三区| 国产一区玩具在线观看| 成人黄色大片在线免费观看| 亚洲精品成人av| 国产精品久久久久久久av大片| 中文字幕免费精品一区| 亚洲国产免费av| 欧美大成色www永久网站婷| 亚洲自拍偷拍在线| 日本精品久久久| 国产一区二区三区丝袜| 91综合免费在线| 粉嫩老牛aⅴ一区二区三区| 国产精品人成电影| 国产精品欧美风情| 亚洲精品ady| 国产日产欧美a一级在线| 精品视频一区在线视频| 日韩成人在线播放| 国内精品久久久久久中文字幕| 国产福利精品av综合导导航| 精品久久久视频| 亚洲新中文字幕| 日韩av网址在线观看| 国产欧美一区二区三区在线看| 精品久久久香蕉免费精品视频| 午夜精品一区二区三区视频免费看| 亚洲精品网站在线播放gif| 91国产一区在线| 亚洲一区二区三区在线免费观看| 色阁综合伊人av| 琪琪第一精品导航| 国内免费精品永久在线视频| 日韩精品在线第一页| 精品性高朝久久久久久久| 日本午夜精品理论片a级appf发布| 久久久久久国产精品久久| 午夜精品一区二区三区在线播放| 日韩中文字幕在线看| 日韩综合中文字幕| 91国产精品91| 热久久美女精品天天吊色| 中文字幕欧美视频在线| 欧美专区中文字幕| 亚洲精品之草原avav久久| 不卡伊人av在线播放| 欧美成人高清视频| 亚洲无限av看| 国产精品aaa| 精品视频在线播放色网色视频| 日韩有码视频在线| 久久久欧美精品| 日韩午夜在线视频| 91亚洲人电影| 久久久午夜视频| 亚洲自拍偷拍在线| 视频在线观看一区二区| 欧美日韩亚洲系列| 最近中文字幕mv在线一区二区三区四区| 91在线色戒在线| 国模精品视频一区二区| 精品国产乱码久久久久久虫虫漫画| 成人在线中文字幕| 91在线免费网站| 久久久国产视频91| 亚洲欧美日本另类| 日韩欧美aⅴ综合网站发布| 97欧美精品一区二区三区| 亚洲成人三级在线| 免费91麻豆精品国产自产在线观看| 韩国精品美女www爽爽爽视频| 欧美电影免费看| 久久精品国产亚洲精品2020| 97免费中文视频在线观看| 久久久精品视频在线观看|