js继承

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


原文地址:https://www.cnblogs.com/kuyuyingzi/p/4266235.html