once专题
# 介绍
传入一个函数,返回一个包装过的函数,多次运行该函数只生效第一次
# 使用
npm i once
let once = require('once')
let onc = once(()=>console.log(111))
onc()
onc()
//只打印一次111
1
2
3
4
5
6
7
2
3
4
5
6
7
# 源码
用一个闭包解决
function once (fn) {
var f = function () {
if (f.called) return f.value
f.called = true
return f.value = fn.apply(this, arguments)
}
f.called = false
return f
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
编辑 (opens new window)
上次更新: 2023/08/23, 09:32:05