01jQuery源码解析-自执行函数

176 阅读1分钟

Offer 驾到,掘友接招!我正在参与2022春招系列活动-刷题打卡任务,点击查看活动详情

jQuery源码解析的文章笔记主要是来自妙味课堂的《一起学习jQuery源码系列:一行一行分析jQuery源码的奥秘》这一课程,这门课程从整体再局部,分模块的对jQuery源码进行解析,后面也会对这些模块的学习笔记和个人思考进行分享。这篇文章分享了jQuery源码最外层的自执行函数的设计原理。

一、自执行函数

(function(window,undefined){}(window)

(一)将window对象作为函数参数传入的原因

不在自执行函数内部直接使用window对象,而是将其当作函数参数传入的原因如下:

  1. 查找速度快:window在全局作用域中,根据作用域链一级一级查找比较慢,这样直接传参的话,查找速度快
  2. 利于压缩:如果传参的话,就能将window压缩为w,否则的话不能压缩

(二)传入undefined的原因

  • 为了防止被修改 由于undefined属于window对象的一个属性,能在外面被修改,因此为了防止被修改,就将其做参数传入,当查找undefined是就不会查找外面的undefined,而是查找传入的undefined

image.png

(三)不建议使用严格模式

  • 只要在jQuery源码中的下面这行代码的注释取消,就启用的严格模式
//"use strict"

image.png

  • 虽然使用严格模式能规范代码,但在一些情况下容易出现问题,因此只要我们开发时注意代码规范,就不必要使用严格模式