首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS进阶 拷贝与继承

重点:熟悉深浅拷贝 知道它们的区别,能够辨别深浅拷贝

一,函数内的方法和prototype方法

--方法写在构造函数内的 为函数内的方法

--把方法写在prototype属性上的  为prototype方法

区别:

--定义在构造函数内部的方法,会在它的每一个实例对象上都克隆这个方法,会重新分配内存

--定义在prototype属性上的方法,所有的实例对象共享这个方法,不会重新分配内存

--函数内的方法可以访问函数内的私有变量

--prototype上的方法 不可以访问函数内部的私有变量

二,深浅拷贝

浅拷贝:

--拷贝基本类型的值

--拷贝引用类型的地址

浅拷贝不是直接复制,而是新建一个对象,然后将源对象的属性都一一复制过来,对于引用类型的话,只是复制地址

深拷贝=浅拷贝+递归

--先创建一个新的对象

--判断原来需要拷贝的那个对象中属性的数据类型

--如果是基本数据类型,就直接拷贝

--如果是引用数据类型,在那个引用数据类新创建一个新的对象,将引用数据类型里面的值遍历赋给它

注意:浅拷贝对于引用数据类型只是复制地址而已

深拷贝则是将属性值都复制过来,开辟了新的内存空间,深浅拷贝的实质在于是否真正的获取一个对象的复制实体,而不是引用。

三,继承。主要讲原型链继承

--将子级的原型对象设置为父级的一个实例

优点:父级新增的原型方法或属性,子级都能访问的到

缺点:所有的实例都会公用一个原型链,如果通过了一个实例修改原型属性,那么所有实例访问的值都会被修改

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200821A05PQX00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券