大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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);//不存在,报错
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/188490.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...