亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術文章
文章詳情頁

Javascript基于OOP實實現探測器功能代碼實例

瀏覽:45日期:2023-10-17 10:41:35

代碼如下

<script>/*所有探測器都有探測的方法和分析的方法,分析當前的瀏覽器環境,不管是瀏覽器還是nodejs*//*container容器探測器*//*link鏈接探測器*//*外層用一個立即執行的匿名函數包裹住,防止一些函數聲明或者變量泄露到外面*/!function(global){ function DetectorBase(configs){//不讓外部通過直接調用方式調用,必須使用new,不使用new就會報錯 /*使用new的話,this就是最后要返回的對象,this instanceof DetectorBase應該返回true,不是的話說明沒有直接通過new調用*/ if(!this instanceof DetectorBase){/**/ throw new Error(’Do not invoke without new.’); } this.configs=configs;/*所有的探測器都會有config屬性*/ this.analyze();/*所有的探測器初始化的時候都需要解析一下數據*/ } DetectorBase.prototype.detect=function(){/*代表一個抽象的探測方法,基類不是具體的一個探測器所以實現沒有意義,用來說明需要實現這樣一個方法*/ throw new Error(’Not implemented’); } DetectorBase.prototype.analyze=function(){ console.log(’analyzing...’); this.data='###data###'; } /***具體實例***/ function LinkDetector(links){/*鏈接探測器,同理必須通過new來構造*/ DetectorBase.apply(this,arguments); if(!this instanceof LinkDetector){ throw new Error(’Do not invoke without new.’); } this.links=links; } function ContainerDetector(containers){ DetectorBase.apply(this,arguments); if(!this instanceof ContainerDetector){ throw new Error(’Do not invoke without new.’); } this.containers=containers; } //inherit first /*LinkDetector和ContainerDetector都可能掛載一些自己的方法 需要注意,一定要先實現原型鏈的繼承,再去擴展。 因為繼承的時候要改寫LinkDetector的prototype屬性*/ inherit(LinkDetector,DetectorBase); inherit(ContainerDetector,DetectorBase); //expand later LinkDetector.prototype.detect=function(){ console.log(’Loading data:’+this.data); console.log(’Link detection started.’); console.log(’Scaning links:’+this.links); } ContainerDetector.prototype.detect=function(){ console.log(’Loading data:’+this.data); console.log(’Container detection started.’); console.log(’Scaning containers:’+this.containers); } //prevent from being altered /*不希望監控程序被改寫,不可刪,不可擴展,不可寫*/ Object.freeze(DetectorBase); Object.freeze(DetectorBase.prototype); Object.freeze(LinkDetector); Object.freeze(LinkDetector.prototype); Object.freeze(ContainerDetector); Object.freeze(ContainerDetector.prototype); //export to global object /*通過defineProperties一次性把3個類暴露在外面,同時保護它們不可被枚舉,不可被刪除和改寫*/ Object.defineProperties(global,{ LinkDetector:{value:LinkDetector}, ContainerDetector:{value:ContainerDetector}, DetectorBase:{value:DetectorBase} }); function inherit(subClass,superClass){// subClass.prototype=Object.create(superClass.prototype); subClass.prototype.constructor=subClass; }}(this);var cd=new ContainerDetector(’#abc #def #ghi’);var ld=new LinkDetector(’http://www.taobao.com http://www.tmall.com http://www.baidu.com’);cd.detect();ld.detect();</script>

運行結果

Javascript基于OOP實實現探測器功能代碼實例

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 久久欧美精品欧美九久欧美 | 亚洲精品国产精品国自产网站 | 亚洲男人天堂手机版 | a一级毛片视频免费看 | 一级特黄aaa大片在 一级特黄aaa大片在线观看 | 中文字幕在线乱码不卡区区 | fefe66免费毛片你懂的 | 人人公开免费超级碰碰碰视频 | 九九99久久精品国产 | 国产男女爽爽爽爽爽免费视频 | 香港三级日本三级人妇网站 | 三a毛片| 亚洲黄色小视频 | 国产成人无精品久久久久国语 | 国产浮力第一页草草影院 | 日本www免费视频网站在线观看 | 中文字幕最新中文字幕中文字幕 | 成人午夜大片免费7777 | 久久久久综合一本久道 | 成人国产精品一级毛片天堂 | 亚洲国产美女视频 | 国产视频软件在线 | 亚洲人成日本在线观看 | 国产精品无码久久综合网 | 国产午夜精品理论片小yo奈 | 国产a高清 | 亚洲精品一区二区中文 | 久草视频手机在线观看 | 午夜国产视频 | 在线观看中文字幕一区 | 韩国美女爽快毛片免费 | 成人国产精品一级毛片视频 | 91看片淫黄大片欧美看国产片 | 国产午夜在线观看视频播放 | 综合 91在线精品 | a级精品九九九大片免费看 a级毛片免费观看网站 | 一区二区不卡视频在线观看 | 国内欧美一区二区三区 | 三a毛片 | 女人毛片a毛片久久人人 | 亚洲精品无码专区在线播放 |