面试常问深拷贝(克隆)详解

原创 阿勒格鲁巴 随笔 javascript 359阅读 2018-05-15 11:37:38 举报

克隆是常问问题之一,常常会根据克隆中用到的语法问到关于判断数据类型以及原型等知识点。

首先需要知道一个知识点:Object.prototype.toString.call();
这个方法会准确返回数据类型,例如:
Object.prototype.toString.call('abc');输出"[object String]"
Object.prototype.toString.call(undefined);输出"[object Undefined]"
Object.prototype.toString.call(null);输出"[object Null]"
Object.prototype.toString.call([1,2,3]);输出"[object Array]"
Object.prototype.toString.call({name: 'a'});输出"[object Object]"

数据存放位置:
基本数据类型:栈中
引用数据类型:堆中
下面是深拷贝代码

程序运行结果:

clonePerson是深拷贝preson对象得到的新对象,这两个对象现在是独立的,改变其中一个的属性值(不论这个属性值是基本数据类型还是引用数据类型),另一个对象的同名属性值并不受影响。

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复