以下为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.