function tes(){ var c=1; yui(c) } function yui(n){ console.log(n) } tes()
function tes(a){ var c=1; a(c) } function yui(n){ console.log(n) } tes(yui)
求教一下大神们第一种方法和第二种回调函数的方法结果都一样。第一种方法跟第二种回调函数有什么区别吗?请解释一下。。
function tes(){
var c=1;
yui(c)
}
function yui(n){
console.log(n)
}
tes()
function tes(a){
var c=1;
a(c)
}
function yui(n){
console.log(n)
}
tes(yui)
求教一下大神们第一种方法和第二种回调函数的方法结果都一样。第一种方法跟第二种回调函数有什么区别吗?请解释一下。。
正如楼上所述,第二种属于提倡的函数式编程的一方面
在本例中,相对于第一种,区别或者好处在于以下三点:
1、两个函数可以作为独立的函数使用,不需要依赖外部变量或者条件,在第一种中,tes必须依赖于yui
2、函数作为参数,突破一直以来的思维限制,带来更多的灵活性
3、因为函数独立,更容易“语义化”,比如本例中,tes可以改成handleC,yui改成log -> handleC(log) -> 把C打印出来。(这里有点稍微有点牵强,但可以往这方向去理解~)
8 回答4.8k 阅读✓ 已解决
6 回答3.5k 阅读✓ 已解决
5 回答2.9k 阅读✓ 已解决
5 回答6.4k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
5 回答1.3k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决