2.类的封装
在Java里,对类的方法或是属性,可以设置为私有,这样就可以避免外部的调用,而JavaScript却不存在这样的设置,看看下面的代码:
复制内容到剪贴板代码:
var person = {
name:null,
init:function(name){
this.setName(name);
},
setName:function(name){
this.name = name;
return this.name;
}
}
person.init('tom'); //tom
在这个类里,一共有2个方法,分别是init和setName,而我们只希望从init中运行setName,或是以后将会为里面添加的各种方法,而不希望出现:
复制内容到剪贴板代码:
person.setName('tom'); //tom
直接调用setName方法,正确的说,希望setName方法私有,还有name属性私有.避免别的程序员使用你的类时,调用了不想被调用的方法.
那应该怎么对类的封装好呢?试试另一种编程方式吧,看看改版的怎么样:
复制内容到剪贴板代码:
var person = function(){
var name = null;
var setName = function(n){
name = n;
return name;
}
return{
init:function(n){
setName(n);
}
}
}
这样子,就可以讲原本要私有化的方法和属性私有化了,外部无法直接调用了.这也是利用了闭包而达成所需要的方式的.可是这种编程方式不易于读,尤其是新手看到这种代码会很吃力,还有在占用内存方面也要比一般的高些.
好了,暂时先介绍到这里,下次有时间在说说闭包与作用域.