重点:熟悉深浅拷贝 知道它们的区别,能够辨别深浅拷贝
一,函数内的方法和prototype方法
--方法写在构造函数内的 为函数内的方法
--把方法写在prototype属性上的 为prototype方法
区别:
--定义在构造函数内部的方法,会在它的每一个实例对象上都克隆这个方法,会重新分配内存
--定义在prototype属性上的方法,所有的实例对象共享这个方法,不会重新分配内存
--函数内的方法可以访问函数内的私有变量
--prototype上的方法 不可以访问函数内部的私有变量
二,深浅拷贝
浅拷贝:
--拷贝基本类型的值
--拷贝引用类型的地址
浅拷贝不是直接复制,而是新建一个对象,然后将源对象的属性都一一复制过来,对于引用类型的话,只是复制地址
深拷贝=浅拷贝+递归
--先创建一个新的对象
--判断原来需要拷贝的那个对象中属性的数据类型
--如果是基本数据类型,就直接拷贝
--如果是引用数据类型,在那个引用数据类新创建一个新的对象,将引用数据类型里面的值遍历赋给它
注意:浅拷贝对于引用数据类型只是复制地址而已
深拷贝则是将属性值都复制过来,开辟了新的内存空间,深浅拷贝的实质在于是否真正的获取一个对象的复制实体,而不是引用。
三,继承。主要讲原型链继承
--将子级的原型对象设置为父级的一个实例
优点:父级新增的原型方法或属性,子级都能访问的到
缺点:所有的实例都会公用一个原型链,如果通过了一个实例修改原型属性,那么所有实例访问的值都会被修改
领取专属 10元无门槛券
私享最新 技术干货