在javaScript中函数就是一个普通的对象
所以
函数可以存储在变量中
函数可以作为参数
函数可以作为返回值
1.函数可以存储在变量中
// 函数就是一个普通的对象 所以它可以存储来变量中
let fn = function () {
console.log('Hello First-class Function')
}
fn()
2.函数可以作为参数
// 函数就是一个普通的对象 函数可以作为参数
function forEach (array, fn) {
for (let i = 0; i < array.length; i++) {
fn(array[i])
}
}
3.函数可以作为返回值
// 函数就是一个普通的对象 函数可以作为返回值
// once
function once (fn) {
let done = false
return function () {
if (!done) {
done = true
return fn.apply(this, arguments)
}
}
}
let pay = once(function (money) {
console.log(`支付:${money} RMB`)
})
// 只会支付一次
pay(5)
pay(5)
pay(5)