如何解决这段代码中的“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 举报,一经查实,本站将立刻删除。