vue2 computed 如何查看Watcher实例的deps数组中的Dep实例具体代表什么data(现在只看到一个id)?-灵析社区

周舟莫UI设计

![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241128/b7b8814d58317ef91432666a9c60f0d1.png)

阅读量:15

点赞量:0

问AI
data返回的对象中的对象类型可以通过它的__ob__属性看到 但是基本原始数据类型怎么看还不知道 研究一下data相关的源码 defineReactive Observer observe initData initState 发现原始数据类型的Dep实例好像是通过闭包获取的。。。 function defineReactive(obj, key, val, customSetter, shallow, mock) { var **dep** = new Dep(); var property = Object.getOwnPropertyDescriptor(obj, key); if (property && property.configurable === false) { return; } // cater for pre-defined getter/setters var getter = property && property.get; var setter = property && property.set; if ((!getter || setter) && (val === NO_INIITIAL_VALUE || arguments.length === 2)) { val = obj[key]; } var childOb = !shallow && observe(val, false, mock); Object.defineProperty(obj, key, { enumerable: true, configurable: true, get: function reactiveGetter() { var value = getter ? getter.call(obj) : val; if (Dep.target) { { **dep**.depend({ target: obj, type: "get" /* TrackOpTypes.GET */, key: key }); } if (childOb) { childOb.dep.depend(); if (isArray(value)) { dependArray(value); } } } return isRef(value) && !shallow ? value.value : value; },