Js里面的函数是“一等公民” 和其他对象都一样,它可以拥有方法,作为参数传递,复制给变量...
我们完全可以在写程序的时候避免不必要的包裹函数(让函数成为一等公民函数 有什么好处 下面会举例)
var hi = function(name) {
return "Hi" + name ;
}
var greeting = function(name) {
return hi(name)
}
像这样用一个函数把另一个函数包裹起来 仅仅是为了延迟执行,不是很好的习惯
它和下面这句代码是等价的
hi(name) ;
why we recommend first class citizen functions?(这里突然想用英语装个逼)为什么我们要推荐一等公民函数,看下面这个例子
httpGet('url', function(json){
return renderPost(json)
})
如果httpGet要改成可以抛出error的异常 那个包裹外面的函数也是要改变的,继续下面这样
httpGet('url',function(json,error){
return renderPost(json,error)
})
这里我们写成一等公民函数会改动的很少
httpGet('url',renderPost) 这里你想要多少参数都行 有点逻辑隔离的味道~