摘要: 目前使用过四种 1、递归递归去复制所有层级属性 function deepClone(obj){ let objClone = Array.isArray(obj)?[]:{}; if(obj && typeof obj "object"){ for(key in obj){ if(obj.hasO 阅读全文
posted @ 2020-09-10 13:58 wamm521 阅读(7184) 评论(0) 推荐(0) 编辑
摘要: 深拷贝和浅拷贝的本质区别就是深拷贝是新开辟一个新的地址空间,对象的改变不会影响原数组;浅拷贝只是复制原对象,指针仍然指向原数组,当前数组变化的时候会触发原数组的改变。 写在前面 各类技术论坛关于深拷贝的博客有很多,有些写的也比我好,那为什么我还要坚持写这篇博客呢,之前看到的一篇博客中有句话写的非常好 阅读全文
posted @ 2020-09-10 11:42 wamm521 阅读(945) 评论(0) 推荐(0) 编辑
摘要: 一 : 为什么要了解浏览器渲染页面的机制,主要还是性能的优化。 了解浏览器如何进行加载,我们可以在引用外部样式文件,外部JS时,将它们放到合适的位置,是浏览器以最快的速度,将文件加载完毕。 了解浏览器如何进行解析,我们可以在构建DOM结构,组织CSS选择器的时候,选择最优的写法,提高浏览器的解析速率 阅读全文
posted @ 2020-09-10 10:50 wamm521 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 想要继承,就必须要提供个父类(继承谁,提供继承的属性) 一、原型链继承 重点:让新实例的原型等于父类的实例。特点:1、实例可继承的属性有:实例的构造函数的属性,父类构造函数属性,父类原型的属性。(新实例不会继承父类实例的属性!)缺点:1、新实例无法向父类构造函数传参。 2、继承单一。 3、所有新实例 阅读全文
posted @ 2020-09-10 10:44 wamm521 阅读(315) 评论(0) 推荐(0) 编辑
摘要: bject.defineproperty 用于 监听 对象的数据变化 用法 Object.defineproperty(obj, key, descriptor) 例如: let obj = { age: 11} let val = 1 Object.defineproperty(obj, 'nam 阅读全文
posted @ 2020-09-10 10:39 wamm521 阅读(987) 评论(0) 推荐(0) 编辑