JS模仿面向对象的封装特性,封装的手段是:
1.使用var关键字修饰的变量只能在函数内访问,所以使用var修饰的变量可以看作私有变量。
2.只有提供了公有的setter与getter方法,才能对私有变量进行修改。
function People(){
this.id = 12; //公有成员
var name = '张三';//私有成员
var age = 20; //私有成员
function say(){
console.log(name+"的年龄是:"+age);
}
this.getName = function(){
return this.name;
}
this.setName = function(name){
this.name=name;
}
}
var p=new People();
console.log(p.id); //输出12
console.log(p.name); //输出undefined
p.setName('rr'); //将该对象的name修改为rr
console.log(p.getName()); //输出rr