完善一个类:利用闭包、自检测this

var Book = (function(){
    //静态私有变量
    var _num = 0
    //静态私有方法
    function checkBook(){}
    //创建类
    function _book (id, bookName){
        //优化用户忘记使用new关键词实例化对象
        //没有new关键词,this则指向Book函数执行所在的作用域(全局作用域window)
        if( !(this instanceof Book) ){
            return new _book(id, bookName);
        }
        //私有变量
        var name;
        //私有方法
        function check(){}
        //特权方法
        this.setName = function(){}
        this.getName = function(){}
        //对象公有属性
        this.id = id
        //对象公有方法
        this.show = function(){}
        _num++;//使用静态私有变量
        //构造器
        this.setName(bookName)
    }
    //构建原型
    _book.prototype = {
        //公有属性(所有实例化对象共享)
        count: 0,
        //公有方法(所有实例化对象共享)
        getCount: function(){}
    }
    //返回类
    return _book;
})();