那么就促成JS的回调函数
标签:
(一)声明函数直接量(字面量)声明
function f1(){ ... }表达示声明
var f2 = function(){ ... }内置结构函数声明(使用此方法情况很少,一般不用,所以就不过多赘述)
var f3 = new function(); (二)挪用函数直接量声明函数挪用
f1(); function f1(){ console.log(111); } f1();功效:
111 111声明前后都可挪用
表达示声明函数挪用
f2(); var f2 = function(){ console.log(222); } f2();功效:
异常:f2不是一个要领(原因:js的变量和函数提升) 222只能先声明后挪用
(三)函数的形参和实参以后更新
(四)回调函数1. 在JS中函数自身的感化域在声明的处所,而不是在挪用的处所
2. 在Js中函数是被称为第一等百姓,因为函数是js的一个特殊的数据类型,
JS是以值的形式来措置惩罚惩罚函数的,那么就促成JS的回调函数。
功效:
[Function: f2] 1 (五)函数闭包闭包就是一个函数,这个函数能够访谒其他函数的感化域中的变量。
闭包的感化:
1.保存感化域
2.函数表里的桥梁
//0.声明赋值全局a var a = 2; //0.声明要领f1() function f1(){ //1.声明赋值局部a var a = 1; //2.声明要领f2() function f2(){ //6.发明a,在感化域链中寻找a,,首先找到了f1()的局部a,并打印 console.log(++a); } //3.终止f1运行并返回f2的指针 return f2; } //0.声明并运行f1() var f = f1();//4.f能够引用f2()要领,因为f还保存f2()的指针,所以f1()留在内存的数据暂且不能销毁。 f(); //5.执行f2(),因为f还保存f2()的指针,所以f1()留在内存的数据暂且不能销毁。 f(); //6.同上,因为始终生存着f1()的数据,所以以上改削的f1()的a一直都是一个值。 f(); //7.同上 f(); //8.同上功效:
2 3 4 5原因:
由于f1的运行功效是返回f2,那么又由于感化域链及函数自身感化域的问题,导致f1运行结束后,不能销毁变量,因此形成了闭包。
Js学习小结(二)函数
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31166.html