前端底层-继承

一、对象克隆

var obj = {
name:'li',
age:23
}
var obj2 = obj;
// 这不是对象克隆 只是把obj的内存地址给obj2

 

1.for in克隆(浅拷贝)  浅拷贝 --> 主要针对第一层的属性进行拷贝

通过for in克隆 不管是私有的还是公有的 都克隆成私有的

 

2.for in克隆(深拷贝)  深拷贝 --> 将属性值也一个一个的遍历赋值

针对所有的属性进行拷贝不管套了几层  如果对象中的属性值又是一个引用数据类型 浅拷贝 还是把后面的引用数据类型的地址赋值给空对象的一个属性

 

3.Object.create( )

js提供了一个克隆的方法 Object.create( )  将obj的所有属性克隆到obj2的原型上

 

二、继承

1.原型继承 --> 将父类的私有和公有属性都继承为子类的公有属性

 

2.call继承  -->  将父类的私有属性继承为子类的私有属性

 

3.冒充对象继承  -->  将父类私有的和公有的都继承为私有的

 

4.混合继承  -->  利用call继承和原型继承 私有的继承私有 公有继承私有和公有

 

5.组合继承  -->  利用call继承和克隆对象 私有继承私有 公有继承公有

 

 6.中间类继承  -->  使其他数据类型也可以使用其他内置对象的方法 赋值为内置类的原型

 

 

原文地址:https://www.cnblogs.com/lijieqiqi/p/qimianjicheng.html