看了一些大佬的,方法分裝的比較好钞瀑,但是對(duì)小白來說看起來比較繞
本菜鳥自己寫了容易理解的
!function () {
??var list = []
??function f (e) { }
??f.prototype.eat = function (e) {
????var fn = function () {
??????console.log('eat | ' + e)
??????調(diào)用()
????}
????list.push(fn)
????return this
??}
??f.prototype.sleep = function (e) {
????var fn = function () {
??????setTimeout(() => {
????????console.log('sleep | ' + e)
????????調(diào)用()
??????}, e * 1000)
????}
????list.push(fn)
????return this
??}
??f.prototype.firstSleep = function (e) {
????var fn = function () {
??????setTimeout(() => {
????????console.log('firstSleep | ' + e)
????????調(diào)用()
??????}, e * 1000)
????}
????list.unshift(fn)
????return this
??}
??function 調(diào)用 () { list.length > 0 && list.shift()() }
??window.f = function (e) {
????var fn = function () {
??????console.log('lazyman | ' + e)
??????調(diào)用()
????}
????list.push(fn)
????setTimeout(調(diào)用, 0)
????return new f()
??}
}()
// 下面4行是調(diào)用的
f("Hank").sleep(2).eat("dinner")
f("Hank").eat("dinner").eat("supper")
f("Hank").firstSleep(2).eat("supper")
f("Hank").sleep(2).firstSleep(3).eat("supper")