有这样一个需求,我想要一个类似于java中的类validation,显示为外部调用的方法只有validate和showError两个方法,但是里面有很多私有的方法和变量。
这个在java中很好解决,js中不存在私有变量和共有变量,只能通过闭包来解决。
1,定义一个Validation原型
var Validation = function(){};
2, 定义一个闭包
(function(){
var param = {...};
Validation.prototype.validate = function(){...};
Validation.prototype.showError = function(){...};
.
.
.
var privateMethod = function(){...};
.
.
.
})()
3, new出Validation,并调用其扩展原型的方法。
var validation = new Validation();
validation.validate().
这样就满足了开始提到的需求