普通函数、构造函数和匿名函数,以及手写callback回调函数
最简单的递归函数 ——N的阶乘
let fn = function (N) {
if (N <= 1) {
return 1;
}
return N * fn(N - 1);
}
let res = fn(3);
console.log(res);
匿名函数
//这是匿名函数自调用
(function () {
let x = 11;
let y = 22;
console.log(x + y);
})()
//这也是匿名函数,只不过是声明一个变量然后把函数赋值给这个变量
let fun = function () {
let x = 11;
let y = 22;
console.log(x + y);
}
fun();
普通函数
fun()
function fun (){
let x = 11;
let y = 22;
console.log(x + y);
}
问:普通函数、匿名函数和构造函数的区别 (巨经典)hah~
答:1、普通函数可以定义在相同作用域任意位置,js代码在解析的时候会跳过这段代码,只有在调用的时候才会执行这段代码;
2、匿名函数顾名思义就是没有名字的函数,匿名函数本身是不能被执行的,想象一下就知道,一个函数都没有名字,怎么去调用他;就好比一个人从出生就没有名字,去公安系统查无此人,是个黑户,也就没办法从事正规的行业;而匿名函数就这样;
存在即合理,那匿名函数如何被调用的
(1)自己调用自己-匿名函数自调用
(function(){
console.log(111)
})()
//()作为运算符存在,运算的结果就是函数本身,得到了函数本身就可以用()去调用即(function(){})(),
//这也就可以解释为什么`function(){}()`以及`function(){}`这样子定义函数为什么不能执行,甚至直接报错;
//联想:Vue 生命周期里的created 是不是就是这样实现的,毕竟在Vue中,页面显示之前就可以先在`created`里面执行相应的数据处理和请求, 这就需要看Vue源码才能了解了,我还没看先水一波
(2) 声明变量赋值——声明一个变量然后把函数赋值给这个变量
let fun = function(){}; //声明
fun(); //调用
回调函数
定义:被作为实参传入另一函数,并在该外部函数内被调用,用以来完成某些任务的函数,称为回调函数。
function public(callback) {
console.log("公共函数被调用");
if (typeof (callback) == "function") {
console.log(typeof (callback));
callback()
}
}
function callback1() {
console.log("回调函数被调用");
}
public(callback1)
最典型的回调函数就是setTimeout(()=>{}), 其中()=>{}, 就是作为回调函数使用

浙公网安备 33010602011771号