创建一个类

var Book = function(name, id) {
	this.name = name;
	this.id = id;
}

Book.prototype.showName() {
	console.log(this.name);
}

var book = new Book('javascript红宝书', 1);
book.showName(); // javascript红宝书

类的属性和方法

var Book = function(name, id) {
  // 私有属性  只能在函数内部自己访问, 外界访问不到
  var num = 1;

  // 私有方法  只能在函数内部自己访问, 外界访问不到
  function checkId() {};

  // 特权方法  在外界能访问到类的私有属性和私有方法的方法
  this.getName = function() {};
  this.getId = function() {};
  this.setName = function() {};
  this.setId = function() {};

  // 公有属性  new关键字实例化的对象上绑定的属性
  this.name = name;
  this.id = id;

  // 公有方法  new关键字实例化的对象上绑定的方法
  this.show = function() {};

  // 构造器
  this.setName(name);
  this.setId(id);
}

// 静态属性  new实例化出来的对象不能访问
Book.isChinese = true; 

// 静态方法  new实例化出来的对象不能访问
Book.resetTime = function() {
  console.log('resetTime');
}

Book.prototype = {
  // 公有属性
  isJsBook: true,
  // 公有方法
  showName: function() {}
}

var book = new Book('javascript红宝书', 1);
book.showName();

还可以这样写

var Book = (function (){
  // 静态私有属性
  var bookNum = 0;
  // 静态私有方法
  function checkBook(name) {};
  // 创建类
  function _book(name, id) {
    // 私有变量
    var name, id;
    // 私有方法
    function checkId(id) {};
    // 特权方法
    this.getName = function() {};
    this.getId = function() {};
    this.setName = function() {};
    this.setId = function() {};
    // 公有属性
    this.name = name;
    this.id = id;
    // 公有方法
    this.show = function() {};
  }
  // 构造原型
  _book.prototype = {
    // 静态公有属性
    isJSBook: false,
    // 静态公有方法
    display: function() {} 
  };
  // 返回类
  return _book;
})()
var Book = function() {
    // 私有属性
    var num = 1;
    // 私有方法
    function addNum(){
        num++;
    }
    // 公有属性
    this.name = "javscript";
    // 公有方法
    this.getName = function() {
        return this.name
    }
}
// 静态公有属性(对象实例不能访问)
Book.isBook = true;
// 静态公有方法(对象实例不能访问)
Book.checkBooks = function() {
    // do something
} 
// 实例共有方法
Book.prototype.calcPrice = function() {
    return this.price * this.num;
}
// 实例共有属性
Book.prototype.sell = true