# RevealingModule 揭示模块模式
var myRevealingModule = function () {
var privateVar = 'Cherry'
var publicVar = 'hey there'
function privateMethod () {
console.log('Name: ' + privateVar)
}
function publicSetName(strName) {
privateVar = strName
}
function publicGetName () {
privateMethod()
}
return {
setName: publicSetName,
greeting: publicVar,
getName: publicGetName
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
优点:相比 Module 模式,更加易读
缺点:如果一个私有函数引用一个公有函数,在需要打补丁时,公有函数是不能被覆盖的。因为私有函数将继续引用私有实现,该模式不适用于公有成员,只适用于函数