JavaScript Proxy()对象的理解使用(代码示例)


本文摘自PHP中文网,作者藏色散人,侵删。

JavaScript中的代理对象用于定义基本操作的自定义行为(例如,属性查找,赋值,枚举,函数调用等)。

语法:

1

var p = new Proxy(target, handler);

参数:代理对象接受如上所述的两个参数,如下所述:

target:要使用Proxy包装的目标对象(可以是任何类型的对象,包括函数,类,甚至是另一个代理)。

handler:一个对象,其属性是在对其执行操作时定义代理行为的函数。

例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

<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>

输出:

1

2

3

[object Object]

John

Nash

注意:如果安装了NodeJs,上面的代码可以直接在终端运行,否则可以在HTML文件中运行,方法是在script标签中粘贴上面的代码,然后在任何web浏览器的控制台中检查输出。

相关推荐:《JavaScript教程》

以上就是JavaScript Proxy()对象的理解使用(代码示例)的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

javascript中对html中元素属性的读取

javascript如何用dom方法来删除div添加div

javascript怎么删除行

javascript如何设置颜色

javascript区不区分大小写

详解javascript中动态合并两个对象的属性

javascript数字转字符串的函数有哪些

javascript如何删除html元素

javascript怎么保留两位小数

javascript怎么修改元素

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...