题解 | #Proxy计数器#

Proxy计数器

https://www.nowcoder.com/practice/9911c5f8ecef4b3088ccbba397b7a984

思路:Proxy虽然是代理,但是本质还是对原对象进行操作,所以要结合Reflect使用,才是真正的不再对原对象进行直接操作,而且Reflect有返回值。

<script type="text/javascript">
   let count = 0
   const _proxy = object => {
      const objectProxy=new Proxy(object,{
         get(target,prop,receiver){
            const isSuccess=Reflect.get(target,prop,receiver)
            if(prop in target)
              count++
            else
              count--
         }
      })
      return objectProxy
   }
</script>

总结:Proxy是js中的内置对象,允许在访问对象之前对其进行拦截和定制,使用new Proxy(被拦截的对象,处理方法)。Reflect是js中的静态方法集合,其提供了对对象的常见操作的封装,Reflect.get(obj, key)可以得到对象obj中键key对象的值。

#Proxy计数器#
前端js面试 文章被收录于专栏

前端js面试,帮助你更好的理解js。

全部评论

相关推荐

点赞 评论 收藏
分享
2024-11-26 18:15
门头沟学院 后端
M_bao:换个排版吧哥们,看着费劲
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务