国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

[js高手之路] es6系列教程 - 新的類(lèi)語(yǔ)法實(shí)戰(zhàn)選項(xiàng)卡

yintaolaowanzi / 2504人閱讀

摘要:其實(shí)的面向?qū)ο蠛芏嘣砗蜋C(jī)制還是的,只不過(guò)把語(yǔ)法改成類(lèi)似和老牌后端語(yǔ)言中的面向?qū)ο笳Z(yǔ)法一用封裝一個(gè)基本的類(lèi)是不是很向和中的類(lèi)其實(shí)本質(zhì)還是原型鏈,我們往下看就知道了首先說(shuō)下語(yǔ)法規(guī)則中的就是類(lèi)名,可以自定義就是構(gòu)造函數(shù),這個(gè)是關(guān)鍵字,當(dāng)實(shí)例化對(duì)

其實(shí)es6的面向?qū)ο蠛芏嘣砗蜋C(jī)制還是ES5的,只不過(guò)把語(yǔ)法改成類(lèi)似php和java老牌后端語(yǔ)言中的面向?qū)ο笳Z(yǔ)法.

一、用es6封裝一個(gè)基本的類(lèi)

class Person{
            constructor( uName ){
                this.userName = uName;
            }
            sayName(){
                return this.userName;
            }
        }
        

是不是很向php和java中的類(lèi), 其實(shí)本質(zhì)還是原型鏈,我們往下看就知道了

首先說(shuō)下語(yǔ)法規(guī)則:

class Person中的Person就是類(lèi)名,可以自定義

constructor就是構(gòu)造函數(shù),這個(gè)是關(guān)鍵字,當(dāng)實(shí)例化對(duì)象的時(shí)候,這個(gè)構(gòu)造函數(shù)會(huì)被自動(dòng)調(diào)用

let oP = new Person( "ghostwu" );
        console.log( oP.sayName() ); //ghostwu

        console.log( oP instanceof Person ); //true
        console.log( oP instanceof Object ); //true
 
        console.log( typeof Person ); //function
        console.log( typeof Person.prototype.sayName ); //function
        console.log( oP.__proto__ === Person.prototype ); //true
        console.log( "sayName" in oP ); //true 
        console.log( Person.prototype );

第1行和第2行實(shí)例化和調(diào)用方法還是跟es5一樣

第4行和第5行判斷對(duì)象是否是類(lèi)(Person)和Object的實(shí)例, 結(jié)果跟es5一樣, 這個(gè)時(shí)候,我們肯定會(huì)想到Person的本質(zhì)是否就是一個(gè)函數(shù)呢

第7行完全驗(yàn)證了我們的想法,類(lèi)Person本質(zhì)就是一個(gè)函數(shù)

第8行可以看到sayName這個(gè)函數(shù)其實(shí)還是加在Person的原型對(duì)象上

第9行還是驗(yàn)證了es5的原型鏈特點(diǎn):對(duì)象的隱式原型指向構(gòu)造函數(shù)的原型對(duì)象

第10行驗(yàn)證oP對(duì)象通過(guò)原型鏈查找到sayName方法

這種類(lèi)的語(yǔ)法,被叫做語(yǔ)法糖,本質(zhì)還是原型鏈

二、利用基本的類(lèi)用法,封裝一個(gè)加法運(yùn)算

class Operator{
            constructor( n1 = 1, n2 = 2 ){
                this.num1 = n1;
                this.num2 = n2;
            }
            add( n1 = 10, n2 = 20 ){
                let num1 = n1 || this.num1, num2 = n2 || this.num2;
                return num1 + num2;
            }
        }
        var oper = new Operator();
        console.log( oper.add( 100, 200 ) );

三、利用基本的類(lèi)語(yǔ)法,封裝經(jīng)典的選項(xiàng)卡

css代碼:

#tab div {
            width: 200px;
            height: 200px;
            border: 1px solid #000;
            display: none;
        }

        #tab div:nth-of-type(1) {
            display: block;
        }

        .active {
            background: yellow;
        }

html代碼:

1
2
3
4

javascript代碼:

window.onload = () => {
            class Tab {
                constructor( context ) {
                    let cxt = context || document;
                    this.aInput = cxt.querySelectorAll( "input" );
                    this.aDiv = cxt.querySelectorAll( "div" );
                }
                bindEvent(){
                    let targetId = null;
                    this.aInput.forEach(( ele, index )=>{
                        ele.addEventListener( "click", ()=>{
                            targetId = ele.dataset.target;
                            this.switchTab( ele, targetId );
                        });
                    });
                }
                switchTab( curBtn, curId ){
                    let oDiv = document.querySelector( curId );
                    this.aDiv.forEach(( ele, index )=>{
                        ele.style.display = "none";
                        this.aInput[index].className = "";
                    });
                    curBtn.className = "active";
                    oDiv.style.display = "block";
                }
            }
            new Tab( document.querySelector( "#tab" ) ).bindEvent();
        }

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/88369.html

相關(guān)文章

  • [js高手之路]js單頁(yè)hash路由原理與應(yīng)用實(shí)戰(zhàn)

    摘要:什么是路由通俗點(diǎn)說(shuō),就是不同的顯示不同的內(nèi)容什么是單頁(yè)應(yīng)用單頁(yè),英文縮寫(xiě)為,就是把各種功能做在一個(gè)頁(yè)面內(nèi)那所謂的單頁(yè)路由應(yīng)用就是在一個(gè)頁(yè)面內(nèi),通過(guò)切換地址欄的來(lái)實(shí)現(xiàn)切換內(nèi)容的變化如何知道切換了呢當(dāng)后面的錨文本發(fā)生變化時(shí),會(huì)觸發(fā)事件。 什么是路由? 通俗點(diǎn)說(shuō),就是不同的URL顯示不同的內(nèi)容 什么是單頁(yè)應(yīng)用? 單頁(yè),英文縮寫(xiě)為SPA( Single Page Application),就是...

    tinna 評(píng)論0 收藏0
  • [js高手之路]設(shè)計(jì)模式系列課程-發(fā)布者,訂閱者重構(gòu)購(gòu)物車(chē)

    摘要:發(fā)布者訂閱者模式,是一種很常見(jiàn)的模式,比如一買(mǎi)賣(mài)房子生活中的買(mǎi)房,賣(mài)房,中介就構(gòu)成了一個(gè)發(fā)布訂閱者模式,買(mǎi)房的人,一般需要的是房源,價(jià)格,使用面積等信息,他充當(dāng)了訂閱者的角色中介拿到賣(mài)主的房源信息,根據(jù)手頭上掌握的客戶(hù)聯(lián)系信息買(mǎi)房的人的手機(jī) 發(fā)布者訂閱者模式,是一種很常見(jiàn)的模式,比如: 一、買(mǎi)賣(mài)房子 生活中的買(mǎi)房,賣(mài)房,中介就構(gòu)成了一個(gè)發(fā)布訂閱者模式,買(mǎi)房的人,一般需要的是房源,價(jià)格,...

    fevin 評(píng)論0 收藏0
  • [js高手之路]深入淺出webpack教程系列4-插件使用之html-webpack-plugin配

    摘要:還記得我們上文中的文件嗎那里面的標(biāo)簽還是寫(xiě)死的文件,那么怎么把他們變成動(dòng)態(tài)的文件,這個(gè)動(dòng)態(tài)生成的文件會(huì)動(dòng)態(tài)引入我們打包后生成的文件呢,我們可以使用插件,首先安裝這個(gè)插件,好的,接下來(lái)就開(kāi)始用這個(gè)插件了官方參考文檔插件通用用法 還記得我們上文中的index.html文件嗎? 那里面的script標(biāo)簽還是寫(xiě)死的index.bundle.js文件,那么怎么把他們變成動(dòng)態(tài)的index.html...

    qpal 評(píng)論0 收藏0
  • 2017年1月前端月報(bào)

    摘要:平日學(xué)習(xí)接觸過(guò)的網(wǎng)站積累,以每月的形式發(fā)布。年以前看這個(gè)網(wǎng)址概況在線(xiàn)地址前端開(kāi)發(fā)群月報(bào)提交原則技術(shù)文章新的為主。 平日學(xué)習(xí)接觸過(guò)的網(wǎng)站積累,以每月的形式發(fā)布。2017年以前看這個(gè)網(wǎng)址:http://www.kancloud.cn/jsfron... 概況 在線(xiàn)地址:http://www.kancloud.cn/jsfront/month/82796 JS前端開(kāi)發(fā)群月報(bào) 提交原則: 技...

    FuisonDesign 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<