以下为ChatGPT自动生成的解答,正确与否请自行判断。 也许你也可以从大家的发帖中找到想要的答案!

BFE.devAI解答 - JavaScript 代码题
130. 创建LazyMan()

function LazyMan(name, logFn) {  var actions = [];  function runActions() {    actions.forEach(function(action) {      action();    });  }  function sayHi() {    logFn(`Hi, I'm ${name}.`);  }  function eat(food) {    actions.push(function() {      logFn(`Eat ${food}.`);    });    return this;  }  function sleep(duration) {    actions.push(function() {      logFn(`(after ${duration} seconds)`);      setTimeout(function() {        logFn(`Wake up after ${duration} seconds.`);        runActions();      }, duration * 1000);    });    return this;  }  function sleepFirst(duration) {    actions.unshift(function() {      logFn(`(after ${duration} seconds)`);      setTimeout(function() {        logFn(`Wake up after ${duration} seconds.`);        runActions();      }, duration * 1000);    });    return this;  }  sayHi();  return {    eat: eat,    sleep: sleep,    sleepFirst: sleepFirst  };}// UsageLazyMan('Jack', console.log)// Hi, I'm Jack.LazyMan('Jack', console.log).eat('banana').eat('apple')// Hi, I'm Jack.// Eat banana.// Eat Apple.LazyMan('Jack', console.log).eat('banana').sleep(10).eat('apple').sleep(1)// Hi, I'm Jack.// Eat banana.// Wake up after 10 seconds.// Eat Apple.// Wake up after 1 second.LazyMan('Jack', console.log).eat('banana').sleepFirst(10).eat('apple').sleep(1)// Wake up after 10 seconds.// Hi, I'm Jack.// Eat banana// Eat apple// Wake up after 1 second.