1.大家看到Vue中的函数
data( )
{
return { }
}
是否有过思考,为什么data是函数,而不是对象呢
相信很多学过闭包的同学就灵机一动,脑门一拍,这个data怎么像一个闭包啊
对,你想的没错,这就是一个典型的闭包
因为闭包可以简单理解为:方法里面返回一个方法
如果不清楚的同学可以看我写的上篇博文:闭包得从底层理解
2.闭包最重要的特性:实现对数据的私有和封装
data写成函数(闭包)的形式,相当于给每一个组件创建了一个私有数据空间
也就是说:A组件数据data只可以为A服务,B组件数据data只可以为B服务
A组件数据data不会影响B组件数据data,B组件不会影响A组件
私有的数据空间,各组件数据不会受影响
3.如果用对象,所有组件的就不能实现私有,只能共用
就像共用一间卫生间,而不是独立卫生间
共用的卫生间只要有人用过,你就会发现变化啦
就会牵一发动全身,造成数据发生改变