# 八.同步与异步
前言
# 1.异步
# 2.高阶函数
函数作为一等公民,可以作为参数和返回值。
# 2.1.可以用于批量生成函数
let toString = Object.prototype.toString
let isString = function (obj) {
return toString.call(obj) == `[object String]`
}
let isFunction = function (obj) {
return toSting.call(obj) == `[object Function]`
}
let isType = function (type) {
return function (obj) {
return toString.call(obj) == `[object ${type}]`
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 2.2.可以用于需要调用多次才能执行的函数
let after = function (time, task) {
return function () {
if (times-- == 1) {
return task.apply(this, arguments)
}
}
}
let fn = after(2, function () {
console.log(3)
})
fn()
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11