首页 > 其他分享 >普通函数、构造函数和匿名函数,以及手写callback回调函数

普通函数、构造函数和匿名函数,以及手写callback回调函数

时间:2022-09-05 09:34:34浏览次数:70  
标签:function console 函数 callback 匿名 let log 构造函数

回调函数

function public(callback) {
console.log("公共函数被调用");
if (typeof (callback) == "function") {
console.log(typeof (callback));
callback()
}
// try {
// if (typeof (eval(callback)) == "function") {
// //eval() 函数会将传入的字符串当做 JavaScript 代码进行执行。【1】这里我不太懂没什么要用eval()函数,像上面一样直接判断也是能判断出function,不懂。。。
// callback()
// }
// } catch (e) {
// return console.log(false);
// }
}
function callback1() {
console.log("回调函数被调用");
}
public(callback1)

最简单的递归函数 ——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,console,函数,callback,匿名,let,log,构造函数
From: https://www.cnblogs.com/zuhah/p/16650271.html

相关文章

  • python 下载url函数
    importrequestsimportshutildefdownload_file(url,local_filename):""":paramurl:url连接:paramlocal_filename:下载后保存文件名字"""......
  • 关于反三角函数及其导数
    关于反三角函数及其导数三角函数和反三角函数,在几何意义上,是x和y互换。三角函数里面,自变量x是角度,y是三角函数对x的运算结果。反三角函数里面,自变量x是针对某个角度y做......
  • 【JS每日一题】Array.reduce函数
    题目题目来源于前端面试题宝典[[0,1],[2,3]].reduce((acc,cur)=>{returnacc.concat(cur)},[1,2])解析[1,2]会作为初始值首次放入到第一个参数......
  • vue3——hook函数
    什么是hook?——本质是一个函数,把setup函数中使用的CompositionAPI进行了封装。类似于vue2.x中的mixin。自定义hook的优势:复用代码,让setup中的逻辑更清楚易懂......
  • postgresql/lightdb CommandCounterIncrement()函数的作用
    CommandCounterIncrement的作用是使当前事务中前面语句的修改对本语句可见,相当于oracle中的当前读概念(currentread,只不过oracle区分,pg不区分)。事务中每执行一个语句后......
  • 生命周期函数(面试)
    生命周期函数 beforeCreate()created()beforeMount()Mounted()beforeUpdate()Updated()beforeDestroy()destroyed()//......
  • vue3——watchEffect函数
    watch的套路是:既要指明监视的属性,也要指明监视的回调。watchEffect的套路是:不用指明监视哪个属性,监视的回调中用到哪个属性,那就监视哪个属性watchEffect有点像comp......
  • #include<algorithm>函数
    1、查找函数(n.find("="))从前往后找:n.find();#include<bits/stdc++.h>#include<algorithm>usingnamespacestd;stringn;intmain(){ cin>>n; intlen=n.find('=......
  • python中的内置函数
    内置函数#1.abs函数print(abs(-1))#绝对值方法#2.all函数print(all([1,'aaa','']))#falseprint(all([]))#true#all方法里面是一个可迭代对象,all会自动将这......
  • Oracle中行转列(pivot)函数解析(二)
    Oracle行转列就是把某一个字段的值作为唯一值,然后另外一个字段的行值转换成它的列值。案例原始数据如下:  方法一:利用groupby实现selectt.mr_sl_id,sum(......