<!doctype html>
<html>
<head></head>
<body>
<script type="text/javascript">
var Calculator = (function() {
var operand, operator;
function impl_add (x, y) {
return x + y;
}
function impl_minus (x, y) {
return x - y;
}
var exports = {};
exports.add = impl_add;
exports.minus = impl_minus;
return exports;
}());
console.log(Calculator.add(1, 2));
console.log(Calculator.minus(5, 3));
</script>
</body>
</html>
上面代码中返回的exports对象实际上是一个闭包。有时候函数会返回一个inner function,这个返回的函数也是闭包。