/**
* 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