2020年6月16日 5:30 晴
/// 高阶函数
// 函数作为返回值
function once(fn){
let done = false;
return function(){
if(!done){
done = true;
return pay(this,arguments)
}
}
}
let t = once(function(money){
return console.log(`支付:${money} Rmb`);
})
pay(5) //一次调用即停止
pay(6) // 无效调用
//函数作为返回值
function makeFn () {
let msg = 'hello function'
return function () {
console.log(msg)
}
}
const fn = makeFn()
fn() // hello function
makeFn()() // hello function
//函数作为返回值的好处
let array = [1,2,3,4,5];
forEach(array,item =>{
console.log(item)
})
let t = filter(array3,item=>{
return item % 2 ===0;
})
console.log(t);
//高阶函数 map every some
//map判断一组数组中是否大于1 然后添加到result里面
let arr = [0,1,2,3,4,5]
const map = (array,fn)=>{
let result =[];
for(let value of array){
result = fn(value);
}
return result
}
console.log(map(arr,v => v>1))
//evary判断一组数组中是否大于1
const every = (array,fn) =>{
let result = true;
for(let value of array){
result = fn(value)
if(!result){
break
}
}
return result
}
console.log(every(arr,v => v>1))
//some判断一组数组中是否存在偶数
const some = (array,fn) => {
let result = false;
for(let value of array){
result = fn(value);
if(result){
break
}
}
return result
}
console.log(some(arr,v => v%2===0))
这是第一天的学习,总的俩说让我明白了什么是高阶函数!