头等函数(头等公民)
概念
函数可以作为别的函数的参数、函数的返回值,赋值给变量或存储在数据结构中
测试代码
1.作为函数参数
// 1.作为函数的参数
function foo() {
console.log('我是foo函数');
}
function bar(fn) {
fn();
}
bar(foo);// 我是foo函数
2.作为函数的返回值
// 2.作为函数的返回值
function baz(fn) {
return function baa() {
console.log('我是baa函数');
};
}
baz()();// 我是baa函数
3.赋值给变量
// 3.赋值给变量
var bab = function () {
console.log('我是bab函数');
};
var bac = bab;
bac();// 我是bab函数
4.存储在数据结构中
// 4.存储在数据结构中
var arr = [];
function bad() {
console.log('我是bad函数');
}
arr.push(bad);
arr[0]();// 我是bad函数
总结
JavaScript的头等函数机制带来了很多的便利
参考
coderwhy前端讲义