1.因为不能确定是哪个对象的值,假如多个监听对象有相同的值,这样产生不必要的歧义和麻烦
const person = reactive({ name : 'person ' })
const car = reactive({ name : 'car' })
watch( person.name, () => {console.log('ohoh') })
显然watch得到是一个name的值,它是无法从一个name推导到person这个对象的,如果实现,就导致car的name和person的name一起监听了,没必要,所以不会这样实现
2. 这也是为了vue3里实现的proxy代理方案,它要利用Proxy的getter属性收集effect依赖