原博客:https://blog.csdn.net/yaojxing/article/details/72784774

1.匿名函数的常见场景

js中的匿名函数是一种很常见的函数类型,比较常见的场景:

  1. <input type="button" value="点击" id="btn">
  2. <script type="text/javascript">
  3. //匿名函数的第一种情形
  4. var btn=document.querySelector("#btn");
  5. btn.onclick=function(){
  6. // alert("aaaaa");
  7. }
  8. //匿名函数的第二种情形
  9. setInterval(function(){
  10. // alert("bbbbb");
  11. }, 1000);
  12. //匿名函数的第三种情形
  13. var fun=function(){
  14. alert("ccccc");
  15. }
  16. // fun();
  17. //匿名函数的第四种情形
  18. var obj={
  19. name:"dddd",
  20. say:function(){
  21. alert(this.name);
  22. }
  23. }
  24. obj.say();
  25. </script>

上面展示的就是常见的匿名函数的使用场景。(注意:querySelector是H5中新增的查找dom元素的方法)

2.匿名自执行函数

见名思义,匿名自执行函数首先是一个匿名函数,但是这个函数是可以自己自动执行的,不需要借助其他的元素。
  1. <input type="button" value="点击" id="btn">
  2. lt;script type="text/javascript">
  3. //1,匿名函数的第一种实现方式
  4. (function(data){
  5. // alert(data);
  6. })("eee");
  7. //2.匿名自执行函数的第二种实现方式
  8. (function(){
  9. // alert("fff");
  10. }());
  11. //3.匿名自执行函数的第三种实现方式
  12. !function(data){
  13. // alert(data);
  14. }("hhh");
  15. //4.匿名自执行函数的第四种实现方式
  16. var fun=function(data){
  17. alert(data);
  18. }("iii");
从上面的代码块中我们可以总结出实现匿名自执行函数的方法一般有四种。

3.匿名自执行函数的作用

1.匿名自执行函数最常见的作用是用于实现闭包的情况中。关于闭包的概念我会在后面的博客中详细介绍。这里简单说明一下闭包。闭包:闭包是js的一种特性,我们可以通过闭包实现函数内外部的连接,并且可以使得函数的局部变量始终存在于内存中。
 
2.匿名自执行函数还可以用于在js中模拟创建块级作用域,即如果使用匿名自执行函数将某些代码包裹起来可以实现块级作用域的效果,减少全局变量的数量,在匿名自执行函数执行结束后变量就会被内存释放掉,从而也会节省了内存。
 

4,匿名函数和匿名自执行函数总结

匿名函数可以简单理解为没有名字的函数,常见的场景一共就有4种。
匿名自执行函数可以简单理解为可以自己执行的匿名函数,实现匿名自执行函数的方式一共有4种。
匿名自执行函数的作用就是用于闭包和创建独立的命名空间两个方面。

JavaScript匿名自执行函数~function(){}的更多相关文章

  1. 理解javascript中的立即执行函数(function(){})()

    之前看了好多代码,都有用到这种函数的写法,但是都没认真的去想为什么会这样写,今天开始想学习下jquery的源码,发现jquery也是使用这种方式,用(function(window, undefine ...

  2. javascript中的立即执行函数(function(){…})()

    javascript中的立即执行函数(function(){…})() 深入理解javascript中的立即执行函数,立即执行函数也叫立即调用函数,通常它的写法是用(function(){…})()包 ...

  3. js匿名自执行函数中闭包的高级使用(---------------------------******-----------------------------)

    先看看最常见的一个问题: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  4. js中的匿名函数和匿名自执行函数

    1.匿名函数的常见场景 js中的匿名函数是一种很常见的函数类型,比较常见的场景:   <input type="button" value="点击" id ...

  5. js匿名自执行函数

    匿名自执行函数:没有方法名的函数闭包:闭包是指有权访问另一个函数作用域变量的函数: 通过一个实例来解释: 从网上找到了一个案例,使用了for循环.匿名自执行函数.setTimeout. 案例1: va ...

  6. JavaScript 函数声明,函数表达式,匿名函数的区别,深入理解立即执行函数(function(){…})()

    function fnName(){xxxx}; // 函数声明:使用function关键字声明一个函数,在指定一个函数名. //例如:(正常,因为 提升 了函数声明,函数调用可以在函数声明之前) f ...

  7. javascript立即执行函数 (function(){})()

    看到一段代码: (function(){ var outer = $('#subject'); outer.find('li').on('mouseover', mouseover); })() ( ...

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

    投稿:junjie 字体:[增加 减小] 类型:转载 时间:2014-06-12 我要评论 这篇文章主要介绍了深入理解javascript中的立即执行函数,立即执行函数也叫立即调用函数,通常它的写法是 ...

  9. Javascript函数的基本概念+匿名立即执行函数

    函数声明.函数表达式.匿名函数 函数声明:function fnName () {…};使用function关键字声明一个函数,再指定一个函数名,叫函数声明. 函数表达式 var fnName = f ...

随机推荐

  1. go: 一个通用log模块的实现

    在go里面,虽然有log模块,但是该模块提供的功能并不强,譬如就没有我们常用的level log功能,但是自己实现一个log模块也并不困难. 对于log的level,我们定义如下: const ( L ...

  2. lua c函数注册器

    lua与c的交互 关于lua和c的交互,主要有两个方面,一是lua调用c的函数,而另一个则是c调用lua函数.而这些都是通过lua stack来进行的. c调用lua 在c里面使用lua,主要是通过l ...

  3. (NO.00003)iOS游戏简单的机器人投射游戏成形记(十三)

    好了,现在在iOS模拟器中编译运行App,一切貌似都很好. 且慢,我们还没有到真机上调试呢?按说在编写App'时,无论如何应该尽快尽早在真机上调试.否则可能会碰到意想不到的问题,这次就是如此. 在真机 ...

  4. 第二篇、vlc-android之源码介绍

    注明 转载请注明出处:http://blog.csdn.net/cuiran/article/details/35987853 正文 继<第一篇.vlc-android之开篇介绍> htt ...

  5. 网站开发进阶(二十九)HTML特殊转义字符

    HTML特殊转义字符 参考文献 http://tool.oschina.net/commons?type=2 美文美图

  6. Python学习笔记 - 迭代Iteration

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- d = {'a': 1, 'b': 2, 'c': 3} for key in d: # 默认迭代是key ...

  7. 《java入门第一季》之面向对象(final关键字)

    /* final可以修饰类,方法,变量 特点: final(可以修饰类),该(类)(不能被继承).一旦修饰了一个类,这个类就不能被继承了! final以修饰方法,该方法可以被继承但是不能被重写.(覆盖 ...

  8. 2DSprite添加Light照射(Unity3D开发之十六)

    猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/45534245 ...

  9. unity连接photon服务端模块

    using UnityEngine; using System.Collections; using System; public class PhotonConnection : Photon.Mo ...

  10. linux 网络不通问题排查

    基本的排错步骤(从上往下)ping 127.0.0.1ping的通说明tcp协议栈没有问题ping 主机地址 ping的通说明网卡没有问题ping 路由器默认网关 ping的通说明包可以到达路由器最后 ...