请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

initProxy(vm)中的hasHandler如何被触发的?

您好,黄老师,我翻开了很久代码,也和同学讨论,还是有不懂的地方。在执行render函数的过程,如果有属性没有在data中定义,就会触发了hasHandler来提示错误信息,但是Proxy中的has函数只会在in操作符才会触发的呀。vue内部是怎么触发这个has函数的呢
图片描述
图片描述
图片描述

正在回答 回答被采纳积分+3

1回答

ustbhuangyi 2020-10-30 11:39:49

这个主要是在用户侧触发的呀,如果用 in 操作符,且如果是 hasHandler 的时候,就会触发 has 函数了。

0 回复 有任何疑惑可以回复我~
  • 提问者 广宝哥 #1
    我一步一步debugger,发现执行render函数(就是生成vnode)后,就出现报错了。在这个过程中,应该没有触发in操作符的地方啊?应该触发get函数才对的吧?
    回复 有任何疑惑可以回复我~ 2020-10-30 11:46:56
  • ustbhuangyi 回复 提问者 广宝哥 #2
    你在 render 函数中可以使用 in 操作符啊
    回复 有任何疑惑可以回复我~ 2020-10-30 13:42:18
  • 提问者 广宝哥 回复 ustbhuangyi #3
    主要是我在vue在render函数里面没有看到使用in操作符,却能触发Proxy的has函数,这个让我十分不解?
    回复 有任何疑惑可以回复我~ 2020-10-30 18:40:49
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信