溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

es7學(xué)習(xí)教程之Decorators(修飾器)詳解

發(fā)布時(shí)間:2020-10-25 13:14:07 來源:腳本之家 閱讀:155 作者:daisy 欄目:web開發(fā)

本文主要給大家介紹的是關(guān)于es7 Decorators(修飾器)的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說,來一起看看詳細(xì)的介紹:

ES6 Decorators(修飾器)

修飾器(Decorator)是一個(gè)函數(shù),用來修改類的行為。這是ES7的一個(gè)提案,目前Babel轉(zhuǎn)碼器已經(jīng)支持

我們?cè)谟螒虼笮晚?xiàng)目種經(jīng)常會(huì)用到的方法,現(xiàn)在es6直接支持

想要使用Decorator的話需要我們配置一下文件夾,配置一下環(huán)境

npm install babel-plugin-transform-decorators-legacy --save-dev

完事配置一下babelrc文件

"plugins": ["transform-decorators-legacy"]

先說一下裝飾器的特點(diǎn)

裝飾器本質(zhì)是一個(gè)函數(shù)

@hometown hometown()

裝飾對(duì)象可以使用多個(gè)裝飾器

@hometown("山西")
@school
 class Student{
  constructor(name){
   this.name=name;
  }
  @studyke("HTML")
  study(){
   console.log(this.name+" is studying"+this.ke+"!")
  }
}

裝飾器可以帶參數(shù)

function hometown(diqu){
   //target.home="廣靈";
   return function(target){
    target.home=diqu;
   }
  }

@hometown("山西")
class...

裝飾器修飾 類

function school(target){
   console.log("123")
   target.schoolName="師徒課堂";
  }
  function hometown(diqu){
   //target.home="廣靈";
   return function(target){
    target.home=diqu;
   }
  }

  function studyke(kemu){
   return function(target){
    target.ke=kemu;
   }
  }
  @hometown("山西")
  @school
  class Student{
   constructor(name){
    this.name=name;
   }
   @studyke("HTML")
   study(){
    console.log(this.name+" is studying"+this.ke+"!")
   }
  }
  console.log(Student.schoolName);
  console.log(Student.home);

  let l=new Student("xiaoA");
  l.study();

  @school
  function Teacher(){

  } 

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI