自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

秋子的博客

终身学习,不要一直停留,路上的风景更美!

  • 博客(8)
  • 收藏
  • 关注

原创 深入理解call,apply,bind相同点及区别

摘要: 本文总结了JavaScript中call、apply、bind的异同及底层实现原理。相同点:三者均用于修改函数this指向。不同点:call按顺序传参,apply通过数组传参,bind返回新函数并支持柯里化;call和apply立即执行,bind延迟执行。底层原理: call:通过临时绑定函数到目标对象并调用,处理null时指向全局对象,支持参数传递。 apply:类似call,但参数以数组形式传入。 bind:返回新函数,合并预传参数与后续参数,支持构造函数场景(this失效但参数保留),并维护原

2025-11-25 18:26:20 1003

原创 this详解,默认绑定,隐式绑定,显示绑定,硬绑定,new绑定,软绑定,箭头函数

JavaScript中的this机制解析 摘要:JavaScript通过四种绑定规则确定this指向:默认绑定指向全局对象,隐式绑定指向调用对象,显式绑定通过call/apply指定,new绑定指向新建对象。优先级依次为new>显式>隐式>默认。箭头函数特殊,其this继承自词法作用域且不可修改。常见误解包括认为this指向函数自身或作用域,实际它关注调用方式。软绑定和硬绑定可解决隐式丢失问题,而Object.create(null)比{}更适合创建纯净空对象。理解这些规则对掌握JavaS

2025-11-11 11:07:24 704 2

原创 模块的原理及使用

本文介绍了JavaScript中模块模式的几种实现方式:1.基本模块模式:通过闭包封装私有变量并暴露公共API,需调用外部函数创建实例。2.单例模式:使用IIFE立即执行返回单例模块实例。3.模块传参:可接受参数创建不同模块实例。4.模块机制实现:通过管理器定义和获取模块,支持依赖注入。5.ES6模块:静态API检查,文件即模块,支持import/export语法。这些模式实现了信息隐藏和公共API暴露,是JavaScript模块化开发的重要技术。

2025-11-04 07:11:20 499 1

原创 闭包和自由变量详解

本文深入解析了JavaScript中的自由变量和闭包机制。自由变量指在函数中使用但非参数或局部变量的变量,其值从定义时的上级作用域获取。闭包是能够访问自由变量的函数,即使函数在词法作用域外执行。文章通过作用域链和上下文分析闭包原理,并列举4个经典for循环示例,对比全局变量和块级作用域的不同表现,最终提出使用let或IIFE创建新作用域的解决方案。闭包在异步编程中广泛应用,但需注意内存管理。文章为系列第4篇。

2025-10-27 22:16:08 321

原创 执行上下文、作用域链详解

本文主要介绍了JavaScript中的执行上下文机制,重点解析了变量提升、执行上下文栈、变量对象和作用域链等核心概念。文章指出变量和函数声明会被提前处理,但函数表达式不会提升;解释了执行上下文栈的后进先出特性;详细说明了变量对象在全局和函数上下文中的不同表现(VO和AO);并分析了作用域链的形成原理,强调自由变量的查找遵循"定义时"而非"执行时"的规则。这些基础知识对于理解JavaScript的执行机制至关重要,是掌握闭包等高级概念的前提条件。

2025-10-20 23:02:02 702

原创 作用域详解 立即执行函数详解

本文主要介绍了JavaScript中的作用域概念,包括静态作用域(词法作用域)和动态作用域的区别。重点分析了函数作用域和块作用域的实现方式,如包装函数、立即执行函数、let/const声明等。文章还探讨了eval和with等已被废弃的动态作用域特性,指出它们会导致性能问题和变量污染。最后提出了最小授权原则,建议通过命名空间和模块管理来避免全局变量污染。全文详细讲解了JavaScript作用域的各种特性及其应用场景。

2025-10-15 21:46:48 1178 1

原创 构造函数、实例、原型、原型链

本文介绍了JavaScript中原型的概念及其应用。主要内容包括:1)构造函数和实例对象的定义与关系,指出构造函数生成多个实例对象时会造成内存浪费;2)通过原型方法解决内存浪费和变量污染问题,将共享属性和方法定义在原型上;3)解析构造函数、实例对象和原型的三者关系,以及原型链的继承机制。文章通过代码示例和示意图,帮助理解原型在JavaScript中的重要作用,即实现属性和方法的共享,从而优化内存使用并避免变量污染。

2024-04-10 00:02:22 595 2

原创 vscode插件

vscode常用插件

2024-04-08 21:48:16 1748

空空如也

空空如也

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

TA关注的人

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