利用js 的基本特性,组合构造函数以及原型编程,完成对象的分装。
构造函数确保每个实例都有一份独立的数据拷贝,原型确保多个实例之间共享函数。
例如:
function person(name,age){
this.name =name;
this.age = age;
}
person.prototype={
getName:function(){
return this.name;
}
}
这其中有一些比较重要技巧,为了封装属性,可以利用到数据属性和访问器属性:
var person = {};
Object.defineProperty(person, 'name', {
configurable: false,
writable: false,
value: 'Jack'
});
var person = {};
Object.defineProperties(person,{
_age:{
value:19
},
isAdult:{
get: function () {
if (this._age >= 18) {
return true;
} else {
return false;
}
}
}
});