引用类型与对象拷贝

1.引用类型有哪些?非引用类型有哪些

基本类型值(数值、字符串、布尔值、null和undefined):指的是保存在栈内存中的简单数据段;
引用类型值(对象、数组、函数、正则):指的是那些保存在堆内存中的对象,变量中保存的实际上只是一个指针,这个指针执行内存中的另一个位置,由该位置保存对象

2、

Paste_Image.png

console.log(obj1 == obj2);输出:false,obj1和obj2分别是指一个指针,指向不同的地址
console.log(obj1 = obj2);输出:object{a:1,b=2}将obj2赋值给obj1
console.log(obj1 == obj2);输出:true经过obj1 = obj2后,两个指向相同的地址

3、

Paste_Image.png
Paste_Image.png

4、

Paste_Image.png
Paste_Image.png

5、

Paste_Image.png

6、

Paste_Image.png

7、

方法一:
function deepCopy(obj){
var newObj={};
for(key in obj){
if(typeof obj[key]==="number" || typeof obj[key]==="string" || typeof obj[key]==="boolean"
|| obj[key]===undefined || obj[key]===null){
newObj[key]=obj[key];
}
else{
newObj[key]=deepCopy(obj[key]);
}
}
return newObj;

方法二:
function deepCopy(obj){
var newObj={};
var newArr=[];
newArr=JSON.stringify(obj);
newObj=JSON.parse(newArr);
return newObj;
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 引用类型有哪些?非引用类型有哪些? JS中的数据类型分为基本类型和引用类型。基本类型:数值(number)、字符串...
    LeeoZz阅读 275评论 0 0
  • 1.引用类型有哪些?非引用类型有哪些 引用类型: 对象 object 数组 函数 正则非引用类型...
    怎么昵称阅读 253评论 0 0
  • 基本类型和引用类型# ECMAScript包含两种不同的数据类型:基本类型值和引用类型值; 基本类型值指的是保存在...
    草鞋弟阅读 509评论 0 0
  • 引用类型有哪些?非引用类型有哪些2.如下代码输出什么?为什么 引用类型 指的是那些保存在堆内存中的对象,变量中保存...
    饥人谷_tonya阅读 194评论 0 0
  • 1.引用类型有哪些?非引用类型有哪些 非引用类型值,即基本类型值(数值,布尔值,undefined,null):指...
    LINPENGISTHEONE阅读 215评论 0 0