<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

        JavaScript設(shè)計(jì)模式之一Interface接口

        來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 20:31:09
        文檔

        JavaScript設(shè)計(jì)模式之一Interface接口

        JavaScript設(shè)計(jì)模式之一Interface接口:如何用面向?qū)ο蟮乃枷雭韺慗avaScript,對于初學(xué)者應(yīng)該是比較難的,我們經(jīng)常用的JQuery其實(shí)也是用面向?qū)ο蟮乃枷肴シ庋b的,今天我們來看看如何在Javascript中用Interface,在C#還是JAVA中都應(yīng)該面向接口設(shè)計(jì)我們的程序,在C#和Java中都Interfac
        推薦度:
        導(dǎo)讀JavaScript設(shè)計(jì)模式之一Interface接口:如何用面向?qū)ο蟮乃枷雭韺慗avaScript,對于初學(xué)者應(yīng)該是比較難的,我們經(jīng)常用的JQuery其實(shí)也是用面向?qū)ο蟮乃枷肴シ庋b的,今天我們來看看如何在Javascript中用Interface,在C#還是JAVA中都應(yīng)該面向接口設(shè)計(jì)我們的程序,在C#和Java中都Interfac

        如何用面向?qū)ο蟮乃枷雭韺慗avaScript,對于初學(xué)者應(yīng)該是比較難的,我們經(jīng)常用的JQuery其實(shí)也是用面向?qū)ο蟮乃枷肴シ庋b的,今天我們來看看如何在Javascript中用Interface,在C#還是JAVA中都應(yīng)該面向接口設(shè)計(jì)我們的程序,在C#和Java中都Interface這樣的關(guān)鍵字,但是JavaScript中沒有相應(yīng)的機(jī)制,但是Javascript很靈活,我們可以用它的特性去模仿Interface,但是我們需要加入一些methods來做check的動(dòng)作。
        我們來看下一個(gè)Interface的作用:

        繼承了這個(gè)Interface就必須要實(shí)現(xiàn)這個(gè)Interface中定義的方法(方法簽名)

        //JavaScript 現(xiàn)在還做不到方法的簽名的約束
        var Interface = function (name, methods) {

        if (arguments.length != 2) {

        throw new Error("the interface length is bigger than 2");

        }

        this.Name = name;

        this.Method = [];

        for (var i = 0; i < methods.length; i++) {

        if(typeof methods[i]!== string) {

        throw new Error("the method name is not string");

        } this.Method.push(methods[i]);

        }

        }

        /*static method in interface*/

        Interface.ensureImplement = function (object) {

        if (arguments.length < 2) {

        throw new Error("there is not Interface or the instance");

        }

        for (var i = 1; i < arguments.length; i++) {

        var interface1 = arguments[i];

        if (interface1.constructor !== Interface) {

        throw new Error("the argument is not interface");

        }

        for (var j = 0; j < interface1.Method.length; j++) {

        var method = interface1.Method[j];

        if (!object[method] || typeof object[method] !== function) {

        throw new Error("you instance doesnt implement the interface");

        }

        }

        }

        }
        我們來分析一下code,我們現(xiàn)在的做法是用來比較一個(gè)Instance中的方法名在接口中是否定義了。
        我先定義一個(gè)接口(2個(gè)參數(shù)),第二個(gè)參數(shù)是接口中的方法名。Check方法用簡單的2層for循環(huán)來做比較動(dòng)作。
        我們來看下如何去用這個(gè)接口:
        var Person = new Interface("Person", ["GetName", "GetAge"]); var Man = function (name, age) { this.Name = name; this.Age = age; } Man.prototype = { GetName: function () { return this.Name; }, // GetAge: function () { return this.Age; } } var test = function (instance) { Interface.ensureImplement(instance, Person); var name = instance.GetName(); alert(name); } test(new Man("Alan",20));
        如果我們注釋了上面的GetAge方法,在執(zhí)行的時(shí)候就會(huì)出錯(cuò)。在ensureImplement的時(shí)候發(fā)現(xiàn)并沒有去實(shí)現(xiàn)這個(gè)方法。

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JavaScript設(shè)計(jì)模式之一Interface接口

        JavaScript設(shè)計(jì)模式之一Interface接口:如何用面向?qū)ο蟮乃枷雭韺慗avaScript,對于初學(xué)者應(yīng)該是比較難的,我們經(jīng)常用的JQuery其實(shí)也是用面向?qū)ο蟮乃枷肴シ庋b的,今天我們來看看如何在Javascript中用Interface,在C#還是JAVA中都應(yīng)該面向接口設(shè)計(jì)我們的程序,在C#和Java中都Interfac
        推薦度:
        標(biāo)簽: js 接口 java
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 黄网站免费在线观看| MM1313亚洲国产精品| 久久一区二区免费播放| 亚洲精品视频在线看| 国产成人综合亚洲| 免费国产不卡午夜福在线| 国产成人综合亚洲一区| 亚洲国产成人a精品不卡在线| 在线观看肉片AV网站免费| 国产成人精品久久亚洲| 狠狠躁狠狠爱免费视频无码| 亚洲无码在线播放| 99精品视频在线免费观看| 亚洲高清资源在线观看| 一个人免费日韩不卡视频| 91亚洲导航深夜福利| 无码乱肉视频免费大全合集| 亚洲a级片在线观看| 午夜毛片不卡免费观看视频| 免费很黄无遮挡的视频毛片| 亚洲日韩乱码中文无码蜜桃臀网站| 亚洲国产精品婷婷久久| 18禁男女爽爽爽午夜网站免费| 国产国产成年年人免费看片| 亚洲av无码成人影院一区| 亚洲精品专区在线观看| 91福利免费网站在线观看| 亚洲一区中文字幕久久| 成人免费无码视频在线网站| 四虎精品成人免费视频| 亚洲成人精品久久| 女人让男人免费桶爽30分钟| 一级A毛片免费观看久久精品| 成人毛片18女人毛片免费96| 手机永久免费的AV在线电影网| 免费a级毛片高清视频不卡| 牛牛在线精品观看免费正| 久久久久亚洲AV片无码| 在线精品免费视频无码的| 免费国产黄网站在线看| 久久久久亚洲精品天堂|