JAVASCRIPT中裝飾器是什麼(裝修)

裝飾器是什麼?數組

解碼器是將另外一段代碼包裝在一個代碼中的簡單方法。瀏覽器

這個概念相似於你之前據說過的功能成分和高階成分。函數

這在許多狀況下都被使用過,也就是說,成都裝修公司簡單地將一個函數包裝到另外一個函數中:插件

前面的示例生成包裝的新函數,它執行與 DoSomething 相同的操做,但它們的不一樣之處在於在包裝函數以前和以後輸出一些語句。ip

如何使用 Javascript 裝飾器get

Javascript 中的裝飾器使用特殊的語法,使用 @做爲標識符,並將其放在修飾代碼以前。table

注:裝潢師仍在擬議階段,這意味着仍有改變的餘地。語法

您能夠在相同的代碼以前放置許多裝飾符,而後解釋器按順序執行程序

在上面的示例中,定義了一個類,使用三個裝飾器:兩個用於類自己,一個用於類的屬性:方法

-@log 能夠記錄全部訪問類

-@immutable 使類不可變 - 也許新實例調用 Object. 凍結

-@Time 記錄從執行到輸出惟一標記的方法

如今,雖然瀏覽器或 NODE 還不受支持。可是,若是您使用 Babel,您可使用轉換 - 裝飾器 - 遺留插件 - 使用裝飾器。

由於 Babel 5 支持處理裝飾器,因此在插件中使用 Legacy,但它可能與最終標準不一樣,所以使用了遺留一詞。

你爲何要用裝飾工?

函數組合在 Javascript 中已經成爲可能,可是在另外一個代碼(如類或類屬性)中使用是至關困難或不可能的。

不一樣類型的裝潢師

如今,裝飾器只支持類和類屬性,包括屬性、方法、獲取函數和設置函數

裝飾器將只在程序第一次運行時執行一次,而且修飾後的代碼將被返回的值替換

類屬性裝飾器

屬性裝飾器應用於類的單個成員 - 不管是屬性、方法、獲取函數仍是集合函數。

裝飾器函數調用三個參數:

- 目標 - 修改類

- 名稱類別成員的姓名

- 描述符 - 成員描述符。Object 將此參數傳遞給 Object.fineProperty

@readonly 是一個典型的例子:

函數只讀(target,name,descriptor){

可寫 = 假;

反轉描述符

12341234

前面的示例將成員描述符中的可寫設置爲 false。

相關文章
相關標籤/搜索