匿名函数具名化

所谓匿名函数具名化:其实就是给匿名函数起个名字。这是一个非常规范的操作。
匿名函数具名化有如下几个特点

  • 匿名函数具名化后,这个名字可以在当前函数形成的私有上下文中使用,代表当前函数本身
  • 此名字不能在当前上下文以外的其它上下文中使用
  • 在本函数上下文中使用时,它的值是不允许修改的
  • 但是如果当前名字在被当前上下文中的其它变量声明过,则名字就变成了变量名,跟函数具名就没有任何关系了,所以变量的值是可以改的。
(function b(){if(i >= 3) return;console.log(i);b(++i);//匿名函数具名化后,这个名字可以在当前函数形成的私有上下文中使用,代表当前函数本身
})(1);
//此名字不能在当前上下文以外的其它上下文中使用
console.log(b); // Uncaught ReferenceError: b is not defined;
(function b(){console.log(b);// f b(){}b = 200;//在本函数上下文中使用时,它的值是不允许修改的//此处输出依然是b函数,b没有被改为200console.log(b);// f b(){}
})();
(function b(){console.log(b);// undefined => b是变量名,不再是函数了// 但是如果当前名字在被当前上下文中的其它变量声明过,则名字就变成了变量名,跟函数具名就没有任何关系了,所以变量的值是可以改的。var b = 200;console.log(b);// 200 => b是变量名,不再是函数了
})();

JavaScript - 匿名函数具名化相关推荐

  1. 一家之言:谈谈JavaScript匿名函数(转)

    匿名函数的概念大家也许不会陌生,但是我相信下面的内容会打开一些新的思路. 我们知道函数的定义方式有两种: 1 function fn1(){alert('fn1 works');} 2 var fn2 ...

  2. javascript匿名函数的各种执行形式

    近期在研究Pomelo源码,这个框架基于Node.js,所以非要频繁地与JavaScript脚本打交道不可.因此,本文中我们来总结 javascript语言中匿名函数的主要目的及各种存在形式.其实,匿 ...

  3. javascript匿名函数的理解

    复制粘贴 [color=red]点评:请记住,关键点是理解javascript的函数概念(参考w3cshool对函数的描述,搜索关键字:ECMAScript 函数).以及()的运算的理解. 比如:va ...

  4. linux 运行函数名,JavaScript匿名函数的各种执行形式

    近期在研究Pomelo源码,这个框架基于Node.js,所以非要频繁地与JavaScript脚本打交道不可.因此,本文中我们来总结 JavaScript语言中匿名函数的主要目的及各种存在形式.其实,匿 ...

  5. JavaScript匿名函数介绍

    JavaScript匿名函数介绍 匿名函数顾名思义指的是没有名字的函数,在实际开发中使用的频率非常高. JavaScript匿名函数最常见的用法: (function(){ //运行的代码 })(); ...

  6. javascript 匿名函数的理解

    代码如下: (function(){ //这里忽略jQuery所有实现 })(); (function(){ //这里忽略jQuery所有实现 })(); 半年前初次接触jQuery的时候,我也像其他 ...

  7. Javascript匿名函数

    ü  定义 匿名函数的定义非常简单:就是没有名字的函数.但是其用途非常的大 ü  典型的函数定义方式 在看匿名函数之前我们先看下在Javascript中定义一个函数比较典型的几种方式 函数声明 fun ...

  8. JavaScript匿名函数以及在循环中的匿名函数

    一 历史 JavaScript其实是一门奇异的语言,TA的一大特性是没有块级作用域 for(var i=0;i<10;i++){} console.log(i) 大家猜测下值是多少? 答案是 1 ...

  9. (转)javascript匿名函数

    文章来源: http://hi.baidu.com/koen_li/blog/item/4b14e4fc0c9b140c08244d8c.html 匿名函数的写法 顾名思义,就是没有名字的函数(⊙﹏⊙ ...

最新文章

  1. shell实例第17讲:连续输入4个100以内的数字,统计和、乘、平均、最小和最大
  2. 关于移除节点的IE和Firefox的兼容问题
  3. 这几个 IntelliJ IDEA 高级调试技巧,用了都说爽!
  4. 怎样在php中使用PDF文档功能
  5. HDFS文件和HIVE表的一些操作
  6. jquery中$.each循环的跳出
  7. 屏幕时代,开发者如何撬动亿级受众,获得用户增长
  8. Java System.getProperty()
  9. 在vSphere Client使用模板部署虚拟机 系统硬盘空间扩展
  10. Hibernate HQL详解
  11. MapGuide Windows编译
  12. 数值分析·学习 | 平方根法和追赶法matlab实现
  13. 数据不正态分布如何办?
  14. NLP6:stanford Parser中文分词
  15. 不可多得的干货!双非渣本Android四年磨一剑,终局之战
  16. Idear创建Maven项目
  17. GIF动态图制作工具(免费),附教程
  18. Microsoft 365独家安全解决方案
  19. Live555本地保存H264/PCM视频音频帧附加SPS/PPS
  20. 根据卫星的方位角和仰角画卫星星空图(QT实现)

热门文章

  1. Spark面试题(二)
  2. 解决导出excel文件名中文乱码的问题
  3. 智能车浅谈——抗干扰技术硬件篇
  4. mysql查询1999年后出生的_超级珍贵的30年前老照片,1999年前出生的看到一半泪奔了!...
  5. 微信开发 (四) 微信网页授权
  6. 电脑连WiFi怎么查看密码是多少
  7. LINUX磁盘分区挂载笔记
  8. adb 查看手机的ip地址
  9. VBA 图表的基本操作
  10. xbox控制台小助手服务器连接已阻止,win10系统xbox控制台小帮手无法登录,提示目前您无法登录怎么办...