<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關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題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
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        js es6系列教程 - 新的類語法實戰選項卡(詳解)

        來源:懂視網 責編:小采 時間:2020-11-27 22:31:08
        文檔

        js es6系列教程 - 新的類語法實戰選項卡(詳解)

        js es6系列教程 - 新的類語法實戰選項卡(詳解):其實es6的面向對象很多原理和機制還是ES5的,只不過把語法改成類似php和java老牌后端語言中的面向對象語法. 一、用es6封裝一個基本的類 class Person{ constructor( uName ){ this.userName = uName; } sayName(){ return
        推薦度:
        導讀js es6系列教程 - 新的類語法實戰選項卡(詳解):其實es6的面向對象很多原理和機制還是ES5的,只不過把語法改成類似php和java老牌后端語言中的面向對象語法. 一、用es6封裝一個基本的類 class Person{ constructor( uName ){ this.userName = uName; } sayName(){ return

        其實es6的面向對象很多原理和機制還是ES5的,只不過把語法改成類似php和java老牌后端語言中的面向對象語法.

        一、用es6封裝一個基本的類

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

        是不是很向php和java中的類, 其實本質還是原型鏈,我們往下看就知道了

        首先說下語法規則:

        class Person中的Person就是類名,可以自定義

        constructor就是構造函數,這個是關鍵字,當實例化對象的時候,這個構造函數會被自動調用

        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行實例化和調用方法還是跟es5一樣

        第4行和第5行判斷對象是否是類(Person)和Object的實例, 結果跟es5一樣, 這個時候,我們肯定會想到Person的本質是否就是一個函數呢

        第7行完全驗證了我們的想法,類Person本質就是一個函數

        第8行可以看到sayName這個函數其實還是加在Person的原型對象上

        第9行還是驗證了es5的原型鏈特點:對象的隱式原型指向構造函數的原型對象

        第10行驗證oP對象通過原型鏈查找到sayName方法

        這種類的語法,被叫做語法糖,本質還是原型鏈

        二、利用基本的類用法,封裝一個加法運算

        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 ) );

        三、利用基本的類語法,封裝經典的選項卡

        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代碼:

        <div id="tab">
         <input type="button" value="點我1" data-target="#div1" class="active">
         <input type="button" value="點我2" data-target="#div2">
         <input type="button" value="點我3" data-target="#div3">
         <input type="button" value="點我4" data-target="#div4">
         <div id="div1">1</div>
         <div id="div2">2</div>
         <div id="div3">3</div>
         <div id="div4">4</div>
         </div>

        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();
         }

        以上這篇js es6系列教程 - 新的類語法實戰選項卡(詳解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        js es6系列教程 - 新的類語法實戰選項卡(詳解)

        js es6系列教程 - 新的類語法實戰選項卡(詳解):其實es6的面向對象很多原理和機制還是ES5的,只不過把語法改成類似php和java老牌后端語言中的面向對象語法. 一、用es6封裝一個基本的類 class Person{ constructor( uName ){ this.userName = uName; } sayName(){ return
        推薦度:
        標簽: js 語法 ES6
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 成人无码视频97免费| 黄人成a动漫片免费网站| 免费在线看黄网站| 亚洲午夜久久久影院伊人| 国产日韩久久免费影院| 亚洲国产主播精品极品网红| 另类小说亚洲色图| 国产成人在线观看免费网站 | 永久免费视频v片www| 亚洲AV综合色区无码二区偷拍| 成视频年人黄网站免费视频| 亚洲美女中文字幕| 免费看美女裸露无档网站| 美女视频黄免费亚洲| 在线观看国产情趣免费视频| 18禁亚洲深夜福利人口| 亚洲成人一区二区| 国精产品一区一区三区免费视频| 亚洲AV中文无码乱人伦下载 | 亚洲欧洲专线一区| 免费无码不卡视频在线观看| 黄色视频在线免费观看| 亚洲人成www在线播放| 国产中文字幕在线免费观看| 亚洲国产aⅴ综合网| 丰满少妇作爱视频免费观看| 亚洲自偷自偷偷色无码中文| 久久精品乱子伦免费| 久久久久亚洲精品日久生情| 一个人看www在线高清免费看| 亚洲国产精品网站在线播放| 亚洲精品456播放| 国产免费网站看v片在线| 亚洲最新黄色网址| 免费人成在线观看播放国产| 两个人日本免费完整版在线观看1| 777亚洲精品乱码久久久久久 | 亚洲精品自在线拍| 日本大片在线看黄a∨免费| 国产黄在线播放免费观看| 亚洲AV永久纯肉无码精品动漫|