国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答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
主站蜘蛛池模板: 国产日产高清欧美一区二区三区 | 日本美女逼逼 | 欧美国产高清欧美 | 欧美人与动性xxxxx杂性 | 国产精品免费视频网站 | 久久久久久亚洲精品不卡 | 国产成人一区二区三区高清 | 亚洲欧洲日韩在线 | 伊人久久成人成综合网222 | 国产国语高清在线视频二区 | 久久中文字幕久久久久91 | 欧美成人亚洲国产精品 | 国产精品久久久久影院 | 青青草国产在线视频 | 亚洲第一视频 | 亚洲国产精品免费 | 国产精品电影一区二区三区 | 国产高清精品久久久久久久 | 99精品国产高清一区二区三区香蕉 | 国产精品久久久久国产精品 | 91色老99久久九九爱精品 | 2020年国产高中毛片在线视频 | 欧美在线视频一区二区 | 欧美一级专区免费大片 | a欧美| 欧美极品另类 | 亚洲另类中文字幕 | 亚洲欧美日韩综合精品网 | 日韩爱爱| 亚洲欧美自拍一区 | 日韩欧美激情视频 | 国产日韩欧美亚洲综合在线 | 亚洲欧洲在线观看 | 国产第八页 | 精品久久一区二区三区 | 亚洲一区二区综合 | 91精品成人免费国产 | 亚洲综合国产 | 久久99久久99精品 | 精品欧美一区手机在线观看 | 亚洲欧美国产精品专区久久 |