vue中的date为什么是一个函数 | 数据类型 | 深浅拷贝
侧边栏壁纸
  • 累计撰写 23 篇文章
  • 累计收到 71 条评论
Vue

vue中的date为什么是一个函数 | 数据类型 | 深浅拷贝

Zuiet
2023-03-07 / 0 评论 / 198 阅读 / 正在检测是否收录...

我们在写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

评论 (0)

取消