- 博客(9)
- 收藏
- 关注
原创 用 Promise 封装 AJAX 请求(从原理到落地)
本文介绍了如何使用Promise封装AJAX请求,解决传统回调地狱问题。主要内容包括: 传统AJAX回调方式的嵌套问题 Promise三种状态与AJAX流程的对应关系 基础版Promise封装GET请求的实现 通用版ajax函数扩展,支持GET/POST请求、请求体和请求头配置 示例展示了链式调用和错误处理的优雅实现方式 通过Promise封装,使得异步AJAX请求可以链式调用,代码结构更清晰,错误处理更统一。
2026-01-12 15:06:33
16
原创 手写 apply 函数:5 分钟吃透(基于 call 对比讲解)
摘要:本文讲解了JavaScript中apply方法的实现原理,重点比较了apply与call的异同。两者核心功能相同(改变this指向并执行函数),区别在于传参方式:call逐个传参,apply通过数组传参。文章详细演示了如何手动实现apply方法(myApply),包括参数处理、函数执行和结果返回等关键步骤,并通过多个测试用例验证了实现的正确性。最后强调apply和call在功能上完全一致,只是参数传递形式不同。
2026-01-09 10:38:54
21
原创 手写 call 函数:10 分钟吃透原理 + 实现(面试高频)
摘要:手写实现JavaScript的call方法,需完成7个关键步骤:1)判断调用者是否为函数;2)处理未传context时默认指向window;3)截取参数;4)将函数临时挂载到context对象;5)通过context.fn()执行实现this指向切换;6)保存函数返回值;7)删除临时属性避免污染。最终实现与原生call相同的功能:动态改变this指向、参数传递和结果返回。代码示例展示了如何通过原型链扩展Function.prototype来实现自定义myCall方法。
2026-01-08 14:24:41
24
原创 深拷贝实现方法精讲:从 API 到手写(12 分钟讲透)
本文探讨了深拷贝与浅拷贝的区别及实现方法。浅拷贝会复制引用类型地址,导致修改原对象影响拷贝对象。深拷贝通过创建完全独立的新对象解决此问题。介绍了两种深拷贝方法:1)使用JSON.parse(JSON.stringify(obj))快速实现;2)手写递归函数,遍历对象并针对基本类型和引用类型分别处理。两种方法都能确保新旧对象完全独立,修改互不影响。手写方法通过边界判断、类型检测和递归调用实现了更灵活的深拷贝功能。
2026-01-07 09:43:25
172
原创 浅拷贝实现方法精讲:从原生 API 到手写(10 分钟讲透)
本文介绍了浅拷贝的概念及其实现方法。浅拷贝是针对引用类型(对象/数组)的操作,只拷贝原数据的表层属性。与直接赋值不同,浅拷贝会创建新对象,但子对象仍共享地址。文章详细说明了四种实现方法:1)Object.assign()用于对象浅拷贝;2)扩展运算符(...)提供最简洁的浅拷贝方式;3)数组专用的slice()和concat()方法;4)手写浅拷贝函数,包含边界判断和属性遍历。每种方法都通过示例展示了浅拷贝的核心特征:表层属性独立,但子对象仍共享引用。
2026-01-06 16:04:42
18
原创 浅拷贝实现方法精讲:从原生 API 到手写(10 分钟讲透)
浅拷贝是仅复制对象/数组表层属性的操作,与直接赋值不同。常见实现方法包括:1) Object.assign()合并对象属性;2) 扩展运算符(...)创建新对象;3) 数组的slice()/concat()方法;4) 手动实现遍历拷贝。浅拷贝的核心特征是:基本类型属性独立,引用类型属性共享地址。当修改子对象时,原对象和拷贝对象会同步变化。手写浅拷贝需处理数据类型判断、容器创建和属性遍历三个关键步骤。
2026-01-05 11:32:52
32
原创 从多参到链式:JS 柯里化通关课
柯里化是一种函数转换技术,它将多参数函数转换为一系列单参数函数的链式调用。通过闭包收集参数,当参数数量达到原函数要求时执行计算。本文展示了普通函数与柯里化函数的区别,并详细说明了实现通用柯里化函数的核心要点:参数收集、执行判断和this绑定。最后通过测试验证了柯里化函数可以支持分步传参、批量传参和一次性传参等多种调用方式,保持与原函数相同的计算结果。
2026-01-05 10:53:21
61
原创 手写instanceof
摘要:instanceof用于检测对象是否为某构造函数的实例,通过判断对象的原型链是否包含该构造函数的prototype。手写实现时需考虑边界情况:1) 处理非对象输入(如基本类型);2) 验证right是否为函数(确保有prototype属性)。优化后的实现通过Object.getPrototypeOf遍历原型链,并添加了类型检查,完整复现了原生instanceof的功能特性。测试表明其对数组、类实例和基本类型的判断均符合预期。
2026-01-04 11:22:35
108
原创 手写New操作符
摘要:本文详细介绍了JavaScript中new关键字的用法和实现原理。通过构造函数和类创建实例时,new会执行4个步骤:创建空对象、绑定原型、执行构造函数并绑定this、处理返回值。文章还手写实现了一个objectFactory函数来模拟new的功能,包括处理参数、原型绑定、this绑定和返回值判断。测试表明,手写实现与原生的new效果完全一致,都能正确创建实例并维护原型链。
2026-01-04 11:12:54
77
前端开发基于Promise/A+规范的手写Promise实现:异步编程核心原理与链式调用机制解析
2026-01-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅