欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2017年09月02日 09:41:52   投稿:jingxian  
下面小編就為大家?guī)硪黄猨s es6系列教程 - 新的類語法實戰(zhàn)選項卡(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

其實es6的面向?qū)ο蠛芏嘣砗蜋C制還是ES5的,只不過把語法改成類似php和java老牌后端語言中的面向?qū)ο笳Z法.

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

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

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

首先說下語法規(guī)則:

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

constructor就是構造函數(shù),這個是關鍵字,當實例化對象的時候,這個構造函數(shù)會被自動調(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行實例化和調(diào)用方法還是跟es5一樣

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

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

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

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

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

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

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

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

三、利用基本的類語法,封裝經(jī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代碼:

<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系列教程 - 新的類語法實戰(zhàn)選項卡(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 詳解uniapp如何處理圖片加載過程中的錯誤

    詳解uniapp如何處理圖片加載過程中的錯誤

    這篇文章給大家詳細介紹了uniapp如何處理圖片加載過程中的錯誤,文章通過代碼示例介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2023-10-10
  • JS基本遍歷方法詳解

    JS基本遍歷方法詳解

    這篇文章主要給大家介紹了JS基本遍歷方法,for,for...in,for...of,文章通過代碼示例介紹的非常詳細,具有一定的參考價值,需要的朋友可以參考下
    2023-09-09
  • JavaScript實現(xiàn)模仿桌面窗口的方法

    JavaScript實現(xiàn)模仿桌面窗口的方法

    這篇文章主要介紹了JavaScript實現(xiàn)模仿桌面窗口的方法,可實現(xiàn)模仿桌面窗口的打開、關閉、移動、縮放及最大化、最小化等功能,需要的朋友可以參考下
    2015-07-07
  • Bootstrap 網(wǎng)站實例之單頁營銷網(wǎng)站

    Bootstrap 網(wǎng)站實例之單頁營銷網(wǎng)站

    這篇文章主要介紹了Bootstrap 網(wǎng)站實例之單頁營銷網(wǎng)站的相關資料,本文給大家介紹的非常詳細具有一定的參考借鑒價值,需要的朋友可以參考下
    2016-10-10
  • JavaScript 空間坐標的使用

    JavaScript 空間坐標的使用

    這篇文章主要介紹了JavaScript 空間坐標的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • JS+CSS實現(xiàn)Li列表隔行換色效果的方法

    JS+CSS實現(xiàn)Li列表隔行換色效果的方法

    這篇文章主要介紹了JS+CSS實現(xiàn)Li列表隔行換色效果的方法,實例分析了js操作li節(jié)點的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-02-02
  • 怎樣用JavaScript實現(xiàn)觀察者模式

    怎樣用JavaScript實現(xiàn)觀察者模式

    這篇文章主要介紹了怎樣用JavaScript實現(xiàn)觀察者模式,想學習設計模式的同學,可以參考一下
    2021-04-04
  • uni-app使用微信小程序云函數(shù)的步驟示例

    uni-app使用微信小程序云函數(shù)的步驟示例

    這篇文章主要介紹了uni-app使用微信小程序云函數(shù)的步驟示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • JavaScript 全角轉(zhuǎn)半角部分

    JavaScript 全角轉(zhuǎn)半角部分

    JavaScript 全角轉(zhuǎn)半角部分 ,需要的朋友可以參考下。
    2009-10-10
  • 微信小程序中的canvas 文字斷行和省略號顯示功能的處理方法

    微信小程序中的canvas 文字斷行和省略號顯示功能的處理方法

    大家都知道在canvas中沒有提供方法來處理文字的多行問題,只有通過截取指定字符串來達到目的。接下來通過本文給大家介紹微信小程序中的canvas 文字斷行和省略號顯示功能 ,需要的朋友可以參考下
    2018-11-11

最新評論