最近在准备八股文的时候遇到的一个问题:vue中的data为什么是函数而不是一个对象?
1.因为组件是可以复用的, JS里对象是引用关系, 如果组件中的data是一个对象, 那么在子组件中的data属性值会互相污染, 产生副作用。
2.data是一个函数的话,这样每复用一次组件,就会返回一份新的data(类似于给每个组件实例创建一个私有的数据空间,让各个组件实例维护各自的数据)
3.Object是引用数据类型,里面保存的是内存地址,单纯的写成对象形式,就使得所有组件实例共用了一份data,就会造成一个变了全都会变的结果。