利用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;
            }
        }
    }
});