<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
        主站蜘蛛池模板: 日本h在线精品免费观看| 亚洲精品色婷婷在线影院| 欧洲一级毛片免费| 91久久亚洲国产成人精品性色| ASS亚洲熟妇毛茸茸PICS| 精品多毛少妇人妻AV免费久久| 在线观看无码AV网站永久免费| 国产亚洲精品成人AA片新蒲金| 亚洲一区二区三区免费观看| 久久国产美女免费观看精品| 国产亚洲老熟女视频| 亚洲欧洲AV无码专区| 久久久免费的精品| 久久久久亚洲AV成人网人人网站| 一级毛片aa高清免费观看| 皇色在线视频免费网站| 亚洲精品私拍国产福利在线| 国产vA免费精品高清在线观看| 亚洲中文无码永久免费| 亚洲AV日韩综合一区| 成人免费大片免费观看网站| 亚洲AV无码一区东京热久久 | eeuss影院ss奇兵免费com| 国产成人99久久亚洲综合精品| 亚洲综合激情五月丁香六月| 91视频免费网址| 久久久久久久久亚洲| 中文字幕一区二区三区免费视频| 处破痛哭A√18成年片免费| 亚洲最大黄色网址| 亚洲高清视频免费| 久久久久亚洲AV成人片| 黄网站色视频免费在线观看的a站最新| 亚洲成?v人片天堂网无码| 久久亚洲精品成人无码| 亚洲线精品一区二区三区 | 亚洲人成无码网站在线观看| 亚洲国产av无码精品| 蜜桃成人无码区免费视频网站 | 牛牛在线精品免费视频观看| 国产成人精品免费视频大全五级|