微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

这段代码中的“body”指的是什么Eloquent Javascript

如何解决这段代码中的“body”指的是什么Eloquent Javascript

我不明白传递给函数 withBoxUnlocked 的是什么。它必须指代 get content(),但 body 不是关键字,也不是 getter 的名称

const Box = {
  locked: true,unlock() { this.locked = false; },lock() { this.locked = true;  },_content: [],get content() {
    if (this.locked) throw new Error("Locked!");
    return this._content;
  }
};

function withBoxUnlocked(body) {
  let locked = Box.locked;
  if (!locked) {
    return body();
  }

  Box.unlock();
  try {
    return body();
  } finally {
    Box.lock();
  }
}

withBoxUnlocked(function() {
  Box.content.push("gold piece");
});

try {
  withBoxUnlocked(function() {
    throw new Error("Pirates on the horizon! Abort!");
  });
} catch (e) {
  console.log("Error raised:",e);
}

console.log(Box.locked);
// → true
Error raised: Error: Pirates on the horizon! Abort!
true

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。