Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在开发人员工具中显示自定义代理字段_Javascript - Fatal编程技术网

Javascript 如何在开发人员工具中显示自定义代理字段

Javascript 如何在开发人员工具中显示自定义代理字段,javascript,Javascript,我正在编写一个代理,它有几个内部存储的调试字段。我通过特定的字段名公开它们,例如,在我的处理程序中类似这样的内容: get(target, property, receiver) { if (property == "__debug1") return debug1 ... 但是当我在Chrome developer tools中查看(检查)对象时,这些伪属性不会出现,即使我执行类似于obj的操作 我尝试实现所有其他似乎与枚举相关的处理程序函数:ownK

我正在编写一个代理,它有几个内部存储的调试字段。我通过特定的字段名公开它们,例如,在我的处理程序中类似这样的内容:

    get(target, property, receiver) {
        if (property == "__debug1") return debug1
        ...
但是当我在Chrome developer tools中查看(检查)对象时,这些伪属性不会出现,即使我执行类似于
obj的操作

我尝试实现所有其他似乎与枚举相关的处理程序函数:
ownKeys
getOwnPropertyDescriptor
has
,如果我直接调用相应的函数,这些函数就会起作用。但是,当我检查对象时,它们从未被调用(甚至使用console.log将其放入控制台,这允许我直接检查值)


如何让伪属性在调试期间显示以供检查?

您将它们“存储”在哪里?在封闭范围内?然后检查处理程序函数的范围。如果将它们存储在代理对象的
目标上
,则它们应该在代理检查中直接可见。但是,记录代理不会导致计算其属性,只有显式访问属性,陷阱才会触发。请发布您的全部代码。@Bergi我将它们作为闭包存储在构造代理的函数中。代理的目标是什么?@Bergi是普通对象。无论如何,因为这似乎不可能做到,作为一种解决方法,我创建了一个递归到对象中的函数,并创建了一个包含隐藏字段的常规镜像副本。