`
didiluck
  • 浏览: 10361 次
  • 性别: Icon_minigender_1
  • 来自: 山东-->北京
社区版块
存档分类
最新评论

理解javascript中的“自动执行函数”

 
阅读更多
  因为之前看了jquery的源码,对于源码中的一开始的()();不是很理解,后来到网上查了查,有了大致的了解,怕忘记了,所以记录一下。
(function(a){alert(a)})(1);
//上面的代码就是一个自动执行的js函数,和jquery中的一样。其中的
function(a){alert(a)}
//是一个匿名函数,接受一个参数。随后的(1)表示对这个匿名函数的调用,并且传递了一个参数,这与我们平常声明一个函数,并调用是一样的:
function x(a) {
  alert(a);
}
x();
//现在来说一下对于这个自动执行函数我所理解的执行顺序:
//首先,第一个小括号,也就是“(function(a){alert(a)})”是一个运算符号,就像:
(1+2)*3
//一样,这样,就是把这个匿名函数给返回,同时紧跟着后面的小括号“(1)”就把它给调用了。如果我们把包裹住匿名函数的小括号给去掉的话,
function(a){alert(a)}(1);
//这样,就不会执行。这时,虽然有了匿名函数,但是并没有对这个函数的引用,后面的小括号仅仅是一个运算优先级而已,并不是对方法的执行。
//不过我们这样写就可以执行了:
+function(a){alert(a)}(1);
//或者
-function(a){alert(a)}(1);
//或者
void function(a){alert(a)}(1);
//或者
new function(a){alert(a)}(1);
//上面的写法都可以。
//前面添加的“+,-,void,new”是运算符和执行关键字,这样会强制匿名函数在声明后返回引用,而后面的小括号就是对函数的执行
分享到:
评论

相关推荐

    深入理解javascript中的立即执行函数(function(){…})()

    JavaScript中的立即执行函数,也称为IIFE(Immediately Invoked Function Expression),是一种特殊的函数表达式,其特点是函数定义的同时就会被自动执行。这种技术在JavaScript编程中广泛应用,尤其是在库和框架如...

    javascript图片自动切换效果

    // 在切换函数中检查是否暂停 function switchImage() { if (!isPaused) { // 图片切换逻辑 } } ``` 总的来说,实现JavaScript图片自动切换效果涉及HTML布局、CSS美化和JavaScript动态控制。通过掌握这些...

    javascript经典特效---javascript代码自动生成.rar

    在JavaScript编程中,代码自动生成通常指的是通过某些工具或方法自动化创建代码的过程,这有助于提高开发效率并减少手动编写时可能产生的错误。下面我们将深入探讨JavaScript代码生成相关的知识点: 1. **模板引擎*...

    Javascript图片自动切换实例

    JavaScript提供了`setInterval()`函数,可以定期执行某段代码。一个简单的图片自动切换可以利用这个特性,每隔一定时间更换图片。首先,我们需要在HTML中定义一个图片容器和一组图片。然后,JavaScript代码通过修改...

    aaaaaa.rar_click javascript_javascript_javascript click_自动点击

    "自动点击"的概念通常涉及到JavaScript中的事件处理和模拟用户行为,这在某些应用场景中非常有用,例如自动化测试或者增强用户体验。让我们深入探讨一下这个主题。 首先,"click"事件是JavaScript中最基础的事件之...

    JavaScript_一个超级小的Javascript自动完成自动建议库零依赖800字节的mingzip.zip

    考虑到库的体积非常小,它很可能没有使用这些高级特性,而是直接通过全局变量或者立即执行函数表达式(IIFE)来封装代码,以保持简洁。 此外,这个库可能没有文档,但可以通过阅读"说明.txt"来理解如何使用。通常,...

    在javascript中实现函数数组的方法

    在JavaScript中,函数确实是一种特殊的数据类型,可以被当作变量存储、传递以及作为其他函数的参数。这与Java等静态类型的编程语言有很大区别。数组在JavaScript中是非常灵活的数据结构,可以存储不同类型的数据,...

    Javascript自动补全类(2)

    JavaScript自动补全类是开发过程中常见的一种功能,用于提高用户输入效率和准确性,尤其是在处理大量数据或代码编辑器中。这个主题主要围绕一个名为"Suggest"的类进行,该类可能是一个实现自动补全功能的JavaScript...

    js javascript自动编号 编号递增

    在JavaScript编程中,"js javascript自动编号 编号递增"这一主题涉及到如何设计一个功能,使得能够自动为带有特定前缀(例如"0X")的数字字符串进行递增。这种需求通常出现在数据管理、序列化或者创建唯一标识符等...

    JavaScript Tools Guide CC.pdf

    3. **脚本事件**:Photoshop支持通过JavaScript设置脚本事件,当特定事件触发时(如打开文件、保存文件等),会自动执行相应的脚本代码。 4. **图层和对象操作**:JavaScript允许对Photoshop中的图层、选区、路径、...

    javascript 自定义eval函数实现

    JavaScript中的`eval()`函数是一个非常强大但又颇具争议的功能,它允许执行一个字符串作为JavaScript代码。在本讨论中,我们将深入探讨如何自定义`eval()`函数以提高代码的安全性和效率,同时也会涉及到JavaScript的...

    超强javascript联想功能、自动提示源码实例

    在实际的开发环境中,JavaScript自动提示功能常与代码编辑器(如VSCode、Sublime Text等)的插件系统结合,或者集成在IDE(如WebStorm)中。此外,现代前端框架如React、Vue等也有相关的库和组件可以方便地实现这一...

    JavaScript 实现自动完成禅道任务

    在JavaScript代码中,我们可以设定定时器,比如使用`setInterval`函数,在每天的特定时间(如中午和下班后)执行检查任务的函数。这个函数会向禅道服务器发送请求,获取今天及之前的所有未完成任务。需要注意的是,...

    深化理解JavaScript中为什么string可以拥有方法_.docx

    了解这个机制对于深入理解JavaScript的工作原理至关重要,特别是在处理字符串和其他基本类型时,能够帮助我们更好地优化代码并避免潜在的错误。例如,如果我们想要为字符串添加额外的属性,应该将其转换为一个真正的...

    JavaScript 图片广告自动与手动的切换

    首先,我们需要理解JavaScript是如何操作HTML中的图片元素的。在HTML中,图片通常由`<img>`标签表示,而JavaScript可以用来动态地改变这些图片的属性,如`src`(源地址)来实现图片的切换。例如,我们可以创建一个...

    JavaScript内核系列 pdf

    理解JavaScript内存模型,避免全局变量污染,合理使用变量和对象,优化循环结构,以及使用最新的语法特性,都可以提升代码性能。此外,遵循一定的编码规范和最佳实践,可以提高代码的可维护性和团队协作效率。 总之...

    《JavaScript内核系列》和《JavaScript面向对象基础》

    2. 垃圾回收:JavaScript自动管理内存,通过垃圾回收机制来回收不再使用的内存。常见的垃圾回收算法有标记清除、引用计数和现代的分代垃圾回收。 3. 事件循环:JavaScript是非阻塞的单线程语言,它依赖事件循环处理...

    javascript自启动函数的问题探讨.docx

    JavaScript 自启动函数,也称为立即调用的函数表达式(Immediately Invoked Function Expression,简称 IIFE),是一种在定义时就自动执行的函数。这种技术在 JavaScript 开发中被广泛使用,用于封装变量、隔离作用...

    编写可维护的JavaScript(中文)

    《编写可维护的JavaScript》向开发人员阐述了如何在团队开发中编写具备高可维护性的JavaScript代码,书中详细说明了作为团队一分子,应该怎么写JavaScript。本书内容涵盖了编码风格、编程技巧、自动化、测试等几方面...

    最好的脚本编辑器javascript asp html,自动提示语法

    编辑器的自动提示语法功能对于编写JavaScript代码来说非常实用,它能帮助开发者快速找到并插入所需函数或变量,减少手动查找和输入的时间,提高编程速度。同时,自动纠错功能可以在编码过程中及时发现语法错误,避免...

Global site tag (gtag.js) - Google Analytics