我们在写vue的项目中定义的一些属性会放到date中,为什么他得是一个函数而不能是对象呢?
export default {
data() {
return
}
}
当date是一个函数的时候,放进去的一些值他都会开辟一个新的空间进行存储.
num1: 1,
num1: 1,
更改一个值的时候其他的值不会发生任何变化
当date是对象的时候,更改一个值其他的值都会发生更改
vue中组件是用来复用的,为了防止data同一个组件被复用多次.
数据类型
基本数据类型: Number, String, Boolean, Null, Undefined.
复杂数据类型: Date, Function, Object, Promise.
浅拷贝深拷贝
浅拷贝: 会创建一个新的对象,这个对象有着原对象属性值的精确拷贝,新旧对象还是共享同一块内存.
深拷贝: 创建一个一模一样的对象,会开辟一个新的空间,不共享同一块内存,修改新对象不会影响到原对象.
浅拷贝拷贝的是基础数据类型的时候,修改原对象不会影响到新对象.
var a = 10;
var b = a;
b = 20;
console.log(a); -> 结果为10
console.log(b); -> 结果为20
当拷贝的是基础数据类型的时候,因为基础数据类型是值传递,所以是直接将属性值赋值给新的对象。
当拷贝的是复杂数据类型的时候,它只是把内存地址赋值给了成员变量,指向了同一内存空间.改变其中一个的值,会对另外一个的值产生影响.
评论 (0)