JavaScript 中的函数运行在它们被定义的作用域里,而不是它们被执行的作用域里
闭包可以私有化属性
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<p>局部变量计数。</p>
<button type="button" onclick="myFunction()">计数!</button>
<p id="demo">0</p>
<script>
var add = function () {
var counter = 0;
return function () {return counter += 1;}
}();
function myFunction(){
document.getElementById("demo").innerHTML = add();
}
</script>
</body>
</html>