/** * 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();