自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 JavaScript的深浅拷贝

当我们把一个对象赋值给一个新的变量时,赋的其实是该对象的在栈中的地址,而不是堆中的数据。也就是两个对象指向的是同一个存储空间,无论哪个对象发生改变,其实都是改变的存储空间的内容,因此,两个对象是联动的。浅拷贝是按位拷贝对象,它会创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值;如果属性是内存地址(引用类型),拷贝的就是内存地址 ,因此如果其中一个对象改变了这个地址,就会影响到另一个对象。即默认拷贝构造函数只是对对象进行浅拷贝复制(逐个成员依次拷贝)

2022-04-06 19:35:46 152

原创 函数里call、apply、bind的实现,手写call、apply、bind

回顾以前学习内容,并记录如下手写call、apply、bindFunction.prototype.myCall = function (context) { // 如果不是函数调用则返回,即 fn.myCall(),此处this为fn if (typeof this !== 'function') return; // 判断是否传入了要改变的this指向的参数,没有则指向window // 即fn.myCall(obj) 将fn的上下文改为obj const c

2022-04-04 14:52:12 358

原创 一文记录手写Promise(详细注释版)

**回顾一下以前学习的promise顺便记录手写promise详细注释版**// Promise实例的三种状态const PEDDING = "pedding"const FULLFILLED = "fullfilled"const REJECTED = "rejected"function MyPromise(executor) { this.status = PEDDING // 初始状态 this.value = undefined // 存放fullfilled

2022-04-04 14:33:47 418

原创 在JavaScript中实现继承的几种方式

文章目录前言继承的几种方式构造方式继承进行测试结论修改原型继承进行测试结论(构造函数+修改原型)组合继承进行测试结论基于组合继承的优化测试结论总结前言JavaScript作为一门面向对象语言,自然有封装、继承、多态的特性,在其他面向对象语言中(如Java、python等),通过类来实现继承,而JavaScript中没有类的概念,于是JavaScript的继承方式区别于传统的继承方式,且有多种实现继承的几种方式以下为JavaScript中常见实现继承的方式,不代表全部。构造方式继承functi

2022-03-05 14:46:24 1039

原创 JavaScript对象的原型解析

JavaScript对象的原型解析前言一切皆是对象构造函数中的奥秘原型指针`__proto__`原型对象prototype总结前言学习JavaScript过程中,原型问题一直让我疑惑许久,那时候捧着那本著名的红皮书,看到有关原型的讲解时,总是心存疑虑。当在JavaScript世界中走过不少旅程之后,再次萌发起研究这部分知识的欲望,翻阅了不少书籍和资料,才搞懂__proto__和prototype的概念。故写下这篇博客,以后忘了可以再回来看看。以下是个人学习的一些总结一切皆是对象初次接触Ja

2022-03-05 00:07:04 470

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除