一般来说,把一个函数当参数传进去都是这样写的
$('#xx').append(function(){
/*some code*/
return xxx
})
但是最近看vue的源码的时候,发现有这样的写法:

是我孤陋寡闻,感觉这种写法真的很少见。
因为我一直以为
//定义
function fn(cb){
cb()
}
//调用
fn(function(){
/*some Code*/
});
/*这个相当于cb=function(){}*/
/*然后cb()*/
不知道这种理解对不对
传匿名函数和传非匿名函数有什么异同呢?
是不是在一个参数的位置声明了一个非匿名函数,在参数外也可以调用?
就比如:
function fn1(cb){
cb()
}
fn1(function fn2(){
/*code*/
});
fn2()
希望有老司机带我一波。。。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
答案:不是。
这样的写法其实差异性不太大,我个人觉得写成命名函数(
fn2)比匿名函数多一个功能,在命名函数(fn2)内部可以通过fn2访问该函数,比如你需要递归的时候可以用到。这种写法很常见啊, function 也是一个对象啊
这样打断点在调用栈里不会出现一堆一堆的匿名函数