/**
* js里面不能//来注释
*1、定义父函数和内部函数,传入json,遍历json的值并赋给内部函数原型,传出内部函数
*2、定义子函数,指定父类函数的实现
*3、调用子函数的方法
*/
function Fu(jsonObj){
function F(){
}
for(var name in jsonObj){
F.prototype[name]=jsonObj[name];
}
return F;
}
var Zi = Fu({
getId:function(){
alert("12");
},
getName:function(){
alert("李项京");
}
});
var z = new Zi();
z.getName();
z.getId();
/**
* 当该函数中有一个参数的情况下创建类
* 当该函数中有两个参数的情况下,第一个参数是基类,第二个参数就是在基类的基础上添加的内容
*/
function Fu(obj,jsonObj){
function F(){
} //为什么要有构造函数呢?而且构造函数名称还不能与函数名称相同
if(typeof obj=="object"){//JSON是object,zi/fu是函数
for(var name in obj){
F.prototype[name]=obj[name];
}
}else{
F.prototype=obj.prototype;
for(var name in jsonObj){
F.prototype[name]=jsonObj[name];
}
}
return F; //注意这里有个return
}
var Zi = Fu({ //继承
getId:function(){
alert("12");
},
getName:function(){
alert("sjoi");
}
});
var SupZi = Fu(Zi,{
getAge:function(){
alert("23");
}
});
var z = new Zi(); //new 一个函数对象
var sz = new SupZi();
z.getName();
z.getId();
sz.getName();
sz.getId();
sz.getAge();