es6 语法 (Decorator)
生活随笔
收集整理的這篇文章主要介紹了
es6 语法 (Decorator)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
修飾器是一個函數,用來修改類的行為(注意:1、函數 ?2、修改行為 ?3、對類進行操作)
{//修飾器函數定義 target:類本身,name名稱,descriptor描述let readonly = function(target, name, descriptor) {descriptor.writable = false; //只讀return descriptor};//類中 class Test {@readonly //調用修飾器 time() {return '2017-03-11'}}let test = new Test();// test.time=function(){// console.log('reset time');// }; //不允許只讀屬性的方法重新賦值 console.log(test.time()); //2017-03-11 }{let typename = function(target, name, descriptor) {target.myname = 'hello';}//對類進行修飾 @typenameclass Test {}console.log('類修飾符', Test.myname); //hello// 第三方庫修飾器的js庫:core-decorators; npm install core-decorators }{let log = (type) =>{return function(target,name,descriptor){let src_method = descriptor.value;descriptor.value = (...arg)=>{src_method.apply(target,arg);console.info(`log ${type}`);}}}class AD{@log('show') //log show show(){console.log('ad is show') //ad is show }@log('click') //log click click(){console.log('ad is click') //ad is click }}let ad = new AD();ad.show();ad.click(); }
更多專業前端知識,請上 【猿2048】www.mk2048.com
{//修飾器函數定義 target:類本身,name名稱,descriptor描述let readonly = function(target, name, descriptor) {descriptor.writable = false; //只讀return descriptor};//類中 class Test {@readonly //調用修飾器 time() {return '2017-03-11'}}let test = new Test();// test.time=function(){// console.log('reset time');// }; //不允許只讀屬性的方法重新賦值 console.log(test.time()); //2017-03-11 }{let typename = function(target, name, descriptor) {target.myname = 'hello';}//對類進行修飾 @typenameclass Test {}console.log('類修飾符', Test.myname); //hello// 第三方庫修飾器的js庫:core-decorators; npm install core-decorators }{let log = (type) =>{return function(target,name,descriptor){let src_method = descriptor.value;descriptor.value = (...arg)=>{src_method.apply(target,arg);console.info(`log ${type}`);}}}class AD{@log('show') //log show show(){console.log('ad is show') //ad is show }@log('click') //log click click(){console.log('ad is click') //ad is click }}let ad = new AD();ad.show();ad.click(); }
?
更多專業前端知識,請上 【猿2048】www.mk2048.com
總結
以上是生活随笔為你收集整理的es6 语法 (Decorator)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js 提取某()特殊字符串长度
- 下一篇: js正整数正则表达式