前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js匿名函数和立即执行函数[通俗易懂]

js匿名函数和立即执行函数[通俗易懂]

作者头像
全栈程序员站长
发布2022-09-27 13:14:11
2.6K0
发布2022-09-27 13:14:11
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

js匿名函数和立即执行函数

1. 匿名函数

匿名函数又叫拉姆达函数, 使用前需要先赋值。

a)写法

代码语言:javascript
复制
	//hello();//会报错,因为定义在后,使用在前。
	var hello=function(){ 
   
		console.log("hello");
	};
	hello();//hello

b) 特点

  • 匿名函数可以直接访问到外层署名函数(Foo)中的变量(使用关键字var定义的),但不能访问外层署名函数的属性(使用关键字this定义的)
  • 匿名函数既可以直接访问外层匿名函数中的变量,也可以直接访问外层匿名函数中的属性

外层函数类型:

署名函数

匿名函数

变量

可以访问

可以访问

属性

不能访问

可以访问

2. 立即执行函数

该类函数没有声明,直接执行,执行完立即释放。一般做初始化比较合适。

a) 写法

代码语言:javascript
复制
	(function (){ 
   
		console.log("写法一");
	}());//w3c建议写法
	(function (){ 
   
		console.log("写法二");
	})();

b) 特点

  • 只有表达式才能被执行,如function (){}(),这样不行,因为function (){}是声明不是表达式,如果是var fn=function (){}();就可以
  • 但执行后,函数名或者变量就不代表函数了,被执行符号执行的表达式其函数名字将被忽略.如以上运行后,fn的值就是undefined了

c) 示例

  • 错误示例
代码语言:javascript
复制
	function fn(a,b,c){ 
   
		console.log(a+b+c);
	}(12,20,30);//不报错原因是(12,20,30)当做逗号表达式用。
  • 正确示例
代码语言:javascript
复制
	(function fn(a,b,c){ 
   
		console.log(a+b+c);
	}(12,20,30));//62
  • 示例2
代码语言:javascript
复制
	var x=function add(a,b){ 
   
	    console.log(a+b);
	}(10,20);//30
	console.log(x);//undefined
	console.log(add);//不存在,报错

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/188490.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • js匿名函数和立即执行函数
  • 1. 匿名函数
    • a)写法
      • b) 特点
      • 2. 立即执行函数
        • a) 写法
          • b) 特点
            • c) 示例
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档