一.原始值和引用值赋值
Js有一个规定,不允许直接访问内存位置,所以不能直接操作对象所在的内存空间。在操作对象时,实际上操作的是对该对象的雨引用而非实际对象本身。
原始值:
通过变量把一个原始值赋值到另一个变量时,原始值会被复制到新变量的位置;num1和num2是完全独立的,互不干涉。
引用值:
引用值从一个变量赋值给另一个变量时,引用值复制到新变量所在的位置,区别在于复制的是引用值的地址,它指向存储在堆内存中的对象,实际两个变量指向的是同一个对象。
浅拷贝和深拷贝
浅拷贝:白话,就是复制,如果属性是基本类型,拷贝的就是基本类型的值。如果属性是引用类型,拷贝的就是内存地址,浅拷贝就拷贝一层,一变则变
深拷贝:深拷贝开辟一个新的栈,两个对象完成相同,但是对应两个不同的地址,修改一个对象的属性,不会改变另一个对象的属性