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

首頁 > 編程 > JavaScript > 正文

JS判定是否原生方法

2019-11-20 22:30:08
字體:
來源:轉載
供稿:網友
瀏覽器的趨勢是加入越來越多對象,像Worker,同時也為舊有的對象添加新方法。如何兼容它的第一步就是檢測它們是否存在,沒有則補上自己的兼容代碼。這時問題就來了,有的類庫是給你做了這一步,但有時沒有,有時是做了,但并不符合標準。因此單純是typeof Array.prototype.map === "function"可能不夠用。這時isNative方法就要登場了。
我一直用的版本,自己寫的:
復制代碼 代碼如下:

var isNative = function(method){//判定是否為原生方法 
      return !! method && (/{s*[native code]s*}/.test(method+"") || 
          /{s*/* source code not available */s*}/.test(method+""));//這里是為了兼容opera9.x的 
  }

但世界這么大,肯定也有研究過這問題,下面是Diego Perini的版本,指出safari對原生方法的toString值其實也是個不合群的:
復制代碼 代碼如下:

var isNative = function(object, method) { 
    return object && method in object && 
      typeof object[method] != string && 
      // IE & W3C browser return "[native code]" 
      // Safari < = 2.0.4 will return "[function]" 
      (/{s*[native code]s*}|^[function]$/).test(object[method]); 
  }

它比我的版本多一個參數,能指定是那個原生對象的方法,但一個參數與兩個參數是沒關系的,結果只是表明,我們倆離完美還有段距離。即使這兩個函數取并集,可能還不是正確的全集。
當然這不是[native code]或者 source code not available還是[function]的問題,因為要javascript中,很容易山寨各種方法與對象。如,下面的代碼就可以成功騙過檢測代碼。
復制代碼 代碼如下:

window.test = { 
  toString: function() { 
    return [function]; 
  } 
}; 

isNative(window, test); // true
最后我從nwmathers中找到這個:
復制代碼 代碼如下:

var isNative = (function() { 
   var s = (window.open + ).replace(/open/g, ); 
   return function(object, method) { 
     var m = object ? object[method] : false, r = new RegExp(method, g); 
     return !!(m && typeof m != string && s === (m + ).replace(r, )); 
   }; 
 })();
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
69久久夜色精品国产69乱青草| 亚洲激情国产精品| 中文字幕一区二区三区电影| 精品性高朝久久久久久久| 91免费视频网站| 日韩视频免费看| 国产欧美精品在线| 亚洲国产精品电影在线观看| 欧美成人三级视频网站| 亚洲自拍av在线| 亚洲性生活视频在线观看| 神马久久桃色视频| 国产精品亚洲综合天堂夜夜| 91精品美女在线| 国产深夜精品福利| 欧美日韩国产区| 91理论片午午论夜理片久久| 最近2019年日本中文免费字幕| 国产精品96久久久久久又黄又硬| 日韩精品免费电影| 日韩中文字幕在线| 久久中文字幕一区| 欧美精品成人在线| 91精品国产91久久久久久最新| 亚洲日韩欧美视频| 亚洲国产欧美一区二区三区久久| 久久久久久国产精品| 日韩精品免费在线视频观看| 日韩av中文在线| 中文字幕在线日韩| 国产精品27p| 青草青草久热精品视频在线观看| 国产91在线播放| 国产精品成人免费视频| 亚洲视频一区二区| 国产亚洲xxx| 欧美黄色片视频| 国模吧一区二区三区| 欧美性资源免费| 欧美精品第一页在线播放| 7777免费精品视频| 成人午夜高潮视频| 久久中文字幕在线视频| 欧美精品免费在线观看| 欧美影院成年免费版| 欧美日韩中文字幕在线视频| 欧美日韩国产页| 国产成人中文字幕| 国产成人精品a视频一区www| 欧美精品在线视频观看| 久久在线免费视频| 国产精品视频内| 欧美在线精品免播放器视频| 亚洲影院在线看| 隔壁老王国产在线精品| 亚洲国产精品久久久| 欧美激情性做爰免费视频| 亚洲天堂男人天堂| 国产日韩欧美电影在线观看| 成人免费视频网| 欧美性生交大片免网| 精品在线小视频| 日韩免费观看av| 久久久女人电视剧免费播放下载| 亚洲免费一级电影| 亚洲国产成人在线视频| 日韩小视频在线观看| 在线日韩欧美视频| 亚洲欧洲午夜一线一品| 日韩av在线免费播放| 成人黄色大片在线免费观看| 日韩美女av在线免费观看| 日韩av男人的天堂| 国产主播在线一区| 精品人伦一区二区三区蜜桃网站| 色系列之999| 亚洲天堂一区二区三区| 国产精品日韩在线播放| 国产精品久久久91| 91日本在线观看| 日韩在线视频导航| 国产日韩专区在线| 国产精品激情自拍| 亚洲国产成人精品久久| 久久久精品一区| 91系列在线观看| 亚洲欧美日本另类| 成人在线中文字幕| 成人精品久久av网站| 日韩不卡中文字幕| 国产精品视频一| 国产午夜精品全部视频在线播放| 97国产精品视频人人做人人爱| 在线精品国产成人综合| 自拍偷拍亚洲在线| 亚洲精品白浆高清久久久久久| 日韩av大片免费看| 日韩中文字幕av| 欧美一级大胆视频| 国产91精品不卡视频| 久久国产精品电影| 欧美专区在线播放| 日韩中文字在线| 欧美视频中文字幕在线| 俺也去精品视频在线观看| 国产在线视频不卡| 亚洲福利视频久久| 色妞在线综合亚洲欧美| 中文字幕综合一区| 欧美极品少妇xxxxⅹ裸体艺术| 欧美区在线播放| 色诱女教师一区二区三区| 久久精品久久久久久国产 免费| 成人午夜激情免费视频| 欧美精品国产精品日韩精品| 人妖精品videosex性欧美| 欧美高清一级大片| 日本国产高清不卡| 国产精品久久久久久久久久ktv| 成人一区二区电影| 影音先锋欧美在线资源| 日韩av在线看| 国产综合香蕉五月婷在线| 欧美高清视频在线播放| 国产欧美亚洲精品| 国模私拍一区二区三区| 国产成人免费av| 日韩av一区二区在线| 91九色精品视频| 国产一区视频在线| 国产精品91一区| 欧美高清视频在线| 国产成人一区二区三区电影| 国产在线视频欧美| 日韩亚洲成人av在线| 国产精品999999| 69影院欧美专区视频| xvideos亚洲人网站| 亚洲韩国日本中文字幕| 亚洲欧美日韩国产中文| 亚洲3p在线观看| 久久精品视频导航| 最近2019年中文视频免费在线观看| 日韩精品视频免费专区在线播放| 国产精品xxx视频| 国产欧美韩国高清| 亚洲日韩中文字幕在线播放| 欧美成人在线免费视频| 91精品中国老女人| 欧美性感美女h网站在线观看免费| 欧美综合激情网| 日韩欧美在线观看| 亚洲天堂第一页| 91亚洲va在线va天堂va国| 欧美精品一本久久男人的天堂| 亚洲综合社区网| 欧美精品18videos性欧美| 国产成人av在线播放| 91美女片黄在线观| 自拍亚洲一区欧美另类| 欧美电影免费观看大全| 国产精品一区久久久| 日韩中文综合网| 久久影视三级福利片|