Javascript之实现一个clone克隆函数

什么是值类型、引用类型?

JavaScript中的原始类型:Undefined、Null、Boolean、Number 和 String。

另外,根据变量值传递的方式,我们又可以将数据区分为“值类型”和“引用类型”.

值类型:将一个值类型变量赋给另一个值类型变量时,将复制包含的值

JavaScript中原始类型都属于值类型(string, number, boolean, null, undefined).

引用类型:对象(Object)、数组(Array)、函数(Function) 

在传递和赋值时, 数据将自身的引用(又叫“地址”、“指针”)给对方.

注意项:

1:对于基本数据类型和引用数据类型在内存中存放的是值还是指针这一区别是否清楚

2:判断一个变量是什么类型的

3:递归算法的设计


Object.prototype.clone = function(){  //给对象原型添加一个clone函数

        var o = this.constructor === Array ? [] : {}; //判断传入的对象是数组类型的对象,还是其它类型的对象

        for(var e in this){

                o[e] =  typeof this[e]  === "object" ? this[e].clone() : this[e]; //判断传入的值是否为对象,是的话再调用自身clone(),否则直接赋值

        }

        return o;

}

参考资料

JavaScript 如何实现克隆(clone)函数

JavaScript面试题 | 前端工程师手册

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

推荐阅读更多精彩内容