对象继承
var a=[1,2,3]; var b=a; b=[1,2,3,4]; alert(a)
继承一:复制继承
children:子类
  
Parent:父类
attribute:Parent.call(this,name,sex)
  
//这个一般是指构造函数里的属性,这个值是每个对象都不一样的
method:children.prototype=Parent.prototype->对象的引用(地址是一个,修改会改变其它的值)
  
继承二:类式继承--new构造函数
把JS中的构造函数看做类
Bbb.prototype = new Aaa();//把构造函数也继承了
Aaa:constractor
问题:子类的构造函数也被覆盖成Aaa的;
Bbb.prototype.constructor = Bbb; //修正指向问题
function Aaa(){
	this.name = [1,2,4];
}
Aaa.prototype.showName = function(){
	alert(this.name);
}
function Bbb(){
	Aaa.call(this);
}
/** 解决Aaa的构造函数共享问题
var F = function(){}
F.prototype = Aaa.prototype;
Bbb.prototype = new F();
Bbb.prototype.constructor = Bbb;
**/
var b1 = new Bbb();
b1.name.push(4);
var b2 = new Bbb();
console.log(b2.name)
继承一:原型继承--无new的对象
var a={
	name:'小明'
}
var b=cloneObj(a);
b.name='lisa';
b={
	name:'1111'
}
alert(b.name); //就近原则,找不到才到原型链里找
alert(a.name);
function cloneObj(obj){
	var F=function(){};
	F.prototype = obj;
	return new F();
}
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号