JavaScript中的代理物件用於定義基本操作的自訂行為(例如,屬性查找,賦值,枚舉,函數呼叫等)。
語法:
var p = new Proxy(target, handler);
參數:代理物件接受如上所述的兩個參數,如下所述:
target:要使用Proxy包裝的目標物件(可以是任何類型的對象,包括函數,類,甚至是另一個代理)。
handler:一個對象,其屬性是在對其執行操作時定義代理行為的函數。
範例:
<script> const Person = { Name: 'John Nash', Age: 25 }; const handler = { // target表示Person,而prop表示代理属性。 get: function(target, prop) { if (prop === 'FirstName') { return target.Name.split(' ')[0]; } if (prop === 'LastName') { return target.Name.split(' ').pop(); } else { return Reflect.get(target,prop); } } }; const proxy1 = new Proxy(Person, handler); document.write(proxy1 + "<br>"); // 虽然没有像FirstName和LastName那样的属性,但是我们仍然获取到它们,就好像它们是属性而不是函数一样。 document.write(proxy1.FirstName + "<br>"); document.write(proxy1.LastName + "<br>"); </script>
輸出:
[object Object] John Nash
注意:如果安裝了NodeJs,上面的程式碼可以直接在終端機運行,否則可以在HTML檔案中運行,方法是在script標籤中貼上上面的程式碼,然後在任何web瀏覽器的控制台中檢查輸出。
相關推薦:《JavaScript教學》
#以上是JavaScript Proxy()物件的理解使用(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!