ES6-プロキシ、プロキシ

ES6強化プロキシエージェントのオブジェクトと関数(メソッド)
 
プロキシは、「メタプログラミング」、プログラミング言語レベルを変更するいくつかの操作のデフォルトの動作を変更するために使用しました
プロキシの意味「エージェント」、オブジェクトにアクセスする前に、「ブロック」の、すなわち設立、操作のオブジェクトへのアクセス
意志「ブロック」、すなわち前にこのチャネルを介して、プロキシの内部に定義された方法を実行します。
 
 
ターゲット本体の上に置くプロキシ文の中括弧は、第二プレリリースメカニズムを    適用します
プロ=ましょう新しい新しいプロキシ({
     // メソッドの本体
    を追加:機能(ヴァル)は{
         返すヴァル+ 100 ; 
    }、
    名前:' Ananiah ' 
}、{ 
    // 前処理SETメカニズム取得適用
     // 特性が得られますフロント前処理
    GETを:機能(ターゲット、キー、プロパティ){ 
        はconsole.log(ターゲット); // {追加:ƒ、名前: "Ananiah"} 
        はconsole.log(キー); // 名前の
        リターン・ターゲット[キー] 
    }、
    SET :機能(ターゲット、キー、値、レシーバ){ 
        にconsole.log( `鍵設定$ {} = {値} $ '); //エージェント名=設定

        // プリントアウトは、リターン後に変更されます
        リターン・ターゲット[キー] + =値' 123 ' ; 
    } 
}); 
はconsole.log(pro.name); 
pro.name = ' エージェント' ; 
にconsole.logを(pro.name);   // 名前プロキシ123 

// 適用 
LET対象= 関数(){
      リターン  ' Ananiahを' ; 
} 
LETハンドラ = { 
    適用(ターゲット、CTX、引数){ 
        にconsole.logは(' スタートを適用' );
         リターンReflect.apply(...引数); // スタートを適用
    } 
}; 
聞かせてproxx = 新しいプロキシ(ターゲット、ハンドラ);
// 调用 
にconsole.log(proxx())// ananiah

 

 

おすすめ

転載: www.cnblogs.com/Ananiah/p/11073690.html