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

js匿名函数和立即执行函数[通俗易懂]js匿名函数和立即执行函数1.匿名函数a)写法b)特点2.立即执行函数a)写法b)特点c)示例1.匿名函数匿名函数又叫拉姆达函数,使用前需要先赋值。a)写法 //hello();//会报错,因为定义在后,使用在前。 varhello=function(){ console.log(“hello”); }; hello();//hellob)特点匿名函数…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1. 匿名函数

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

a)写法

	//hello();//会报错,因为定义在后,使用在前。
	var hello=function(){ 
   
		console.log("hello");
	};
	hello();//hello

b) 特点

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

2. 立即执行函数

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

a) 写法

	(function (){ 
   
		console.log("写法一");
	}());//w3c建议写法
	(function (){ 
   
		console.log("写法二");
	})();

b) 特点

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

c) 示例

  • 错误示例
	function fn(a,b,c){ 
   
		console.log(a+b+c);
	}(12,20,30);//不报错原因是(12,20,30)当做逗号表达式用。
  • 正确示例
	(function fn(a,b,c){ 
   
		console.log(a+b+c);
	}(12,20,30));//62
  • 示例2
	var x=function add(a,b){ 
   
	    console.log(a+b);
	}(10,20);//30
	console.log(x);//undefined
	console.log(add);//不存在,报错
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Mysql 实现多种逻辑删除方案

    Mysql 实现多种逻辑删除方案Mysql实现多种逻辑删除方案新增逻辑删除字段方式多deleted值deleted:0代表未删除,删除时把deleted赋值为时间戳UNIX_TIMESTAMP(NOW())采用备份表方式最近在做公司项目的时候,对于表的逻辑删除,和其他同事出现了不同意见,故查阅了一些blog,结合自己的实际情况,再次做了笔记,以备后查。在实际的项目开发中,对于某些业务数据,一般都不会采用物理删除的方式,…

    2022年5月5日
    189
  • Asp.Net enableEventValidation

    Asp.Net enableEventValidationasp.net中enableEventValidation是干什么的???回发或回调参数无效。在配置中使用<pagesenableEventValidation=”true”/>或在页面中使用<%@PageEnableEventValidation=”true”%>启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现…

    2022年7月26日
    10
  • getComputedStyle()与currentStyle()、style()方法「建议收藏」

    JS使用getComputedStyle()方法获取CSS属性值 在对网页进行调试的过程中,经常会用到js来获取元素的CSS样式,方法有很多很多,现在仅把我经常用的方法总结如下:1.obj.style:这个方法只能JS只能获取写在html标签中的写在style属性中的值(style=”…”),而无法获取定义在&lt;styletype="text/c…

    2022年4月9日
    50
  • Linux中用tar命令对文件夹进行打包压缩

    Linux中用tar命令对文件夹进行打包压缩一、打包的概念     打包:指将多个文件(或目录)合并成一个文件,方便在不同节点之间传递或在服务器集群上部署。     压缩或打包文件常见扩展名    *.tar,*.tar.gz,*.gz,*.bz2,*.Z;     Linux系统一般文件的扩展名用途不大,但是压缩或打包文件的扩展名时必须的,因为linux支持的压缩命令较多,不同的压缩技术使…

    2022年6月7日
    127
  • label 的autosize属性

    label 的autosize属性label的autosize属性,显示不全的问题。转载于:https://www.cnblogs.com/sfbrzkh/p/4487911.html

    2022年5月20日
    32
  • CString 使用详解

    CString 使用详解CString::MakeUppervoidMakeUpper();Remarks备注ConvertsthisCStringobjecttoanuppercasestring.将原对

    2022年7月3日
    21

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号