企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
<hr> <div id="div1"><h3> <font color=red> Proxy和Object.defineProperty </font> <h3></div> [数据劫持 OR 数据代理(Proxy与Object.defineProperty)](https://blog.csdn.net/mmjinglin/article/details/85097794) Vue 的双向绑定,简单来说就是利用 Object.defineProperty(),并且把内部解耦为 Observer, Dep, 并使用 Watcher 相连。 在目标对象之前设置一层拦截,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。 Object.defineProperty()来劫持对象属性的setter和getter操作,在数据变动时做你想要做的事情 ### **Object.defineProperty问题** 1,Object.defineProperty() 无法监控到数组下标的变化。 vue只能通过push(),pop(),shift(),unshift(),splice(),sort(),reverse()方法来监听,经过vue内部处理后才能监听的。 2,只能劫持对象的属性,因此我们需要对每个对象的每个属性进行遍历