Skip to content
On this page

闭包

为啥要闭包

为了实现封装特性。

闭包示例

js
var foo = (function() {
    var int = 0
    function change(val) {
        int += val
    }
    return {
        add : function() {
            change(1)
        },
        red : function() {
            change(-1)
        },
        value : function() {
            return int
        }
    }
})()

foo.add()
foo.add()
console.log(foo.value())
foo.red()
console.log(foo.value())

Output:

text
2
1

这样子就实现了一定程度上的封装,整理一下伪代码,命名上我就用面向对象的术语,方便之后查笔记。

js
var 类名 = (function() {
  var 私有成员变量 = 0
  function 私有成员方法(val) {
    成员变量 += val
  }
  return {
  公共方法: function() {
   私有成员方法(1)
  }
  公共Getter : function(){
   return 私有成员变量
  }
 }
})()
类名.公共方法()
终端.打印(类名.公共Getter())

Released under the MIT License.