SOURCE

/**
 * eg:1
 */
function createbook(name,time,type){
    var o = new Object();
    o.name = name;
    o.time = time;
    o.type = type;
    o.getName = function(){
        console.log(this.name)
    };
    return o;
}

var book1 = createbook("js book",2014,"js")
var book2 = createbook("css book",2013,"js")

book1.getName();
book2.getName();


/**
 * eg:2
 */
function createPop(type,text){
  var o = new Object();
  o.content = text;
  o.show = function(){

  };
  if(type == 'alert'){
    console.log("alert --")
  }
  if(type == 'prompt'){
    console.log('prompt --')
  }

  if(type == 'confirm'){
    console.log("confirm --")
  }
  return o;
}
var userNameAlert = createPop('prompt','用户名只能是26个字母和数字')

//属性方法的封装
/**
 * 面向对象思想,就是对一些属性方法的隐藏与暴露,比如私有属性,私有方法,公有属性,公有方法,保护方法等
 * 在创建类时,每个对象自身都拥有一份并且可以在外部访问到。因此通过this创建的属性可看做是对象共有属性和对象共有方法,还能访问到类或对象自身的私有属性和私有方法,由于这些方法权利比较大,所以
 * 我们又将它看做特权方法。
 */
var Basktball = function(id,name,price){
    this.name = name;//对象公有属性
    this.id=id;//对象公有属性
    this.price = price;//对象公有属性
    var ids ="1";//私有属性
    function checkdId(){

    };//私有方法
    Basktball.ischinese = "ffff";//类的静态共有属性
    Basktball.resettime = function(){ // 类的静态共有方法
        console.log("new Time")
    }
   
}
 Basktball.prototype = {
        isJSBook: false, //公有属性
        display:function(){//公有方法

        }
 }

var b = new Basktball(1,'篮球',40)
console.log(b.name)
console.log(b.id)
console.log(b.price)
console.log(b.ischinese + ":静态公有属性,对象访问不对静态公有方法")//实例化的对象不能访问到静态共有方法
console.log(Basktball.ischinese+" :静态公有方法类本身可以访问")//类本身可以访问
console.log(b.ids+":私有属性外部访问不到")//私有属性外部访问不到
console.log(b.isJSBook+" :公有属性配置在原型上外部可访问 ")//私有属性外部访问不到

console 命令行工具 X clear

                    
>
console