Vue组件中的data为什么是一个函数
首先进行了解引用数据类型
在JS中存在2大类的数据类型,引用数据类型和原始数据类型。
引用数据:对象 函数 数组都是引用类型。
引用数据类型的存储方式是不一样的:它的引用(名字)是存放在栈空间的,而它的数据是存放在堆空间的,栈空间就是存放的数据在堆空间的地址。
例如代码:对对象进行赋值后再进行改变数据。
可见引用数据类型直接进行赋值的话,是赋值的地址,在堆空间并没有进行开辟新的内存空间。
所以这时候可以想到data为什么是一个函数,如果data是一个对象,那么在页面中对data的数据会进行复杂的修改和赋值,这时候改一处数据就会影响多个数据的改变,当改成函数,就形成独立的作用域,那么就不会互不干扰