码迷,mamicode.com
首页 > 其他好文 > 详细

对象继承

时间:2018-02-02 14:18:26      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:拖拽   .sh   java   extend   test   调用   bsp   query   相互   

1.什么是继承
  在原有对象的基础上,略作修改,得到一个新的对象
  不影响原有对象的功能
  子类不影响父类,子类可以继承父类的一些功能(代码复用)
2.如何添加继承
  属性:call
  方法:for in

一、属性的继承

//属性的继承:调用父类的构造函数,用call改变this指向
function CreatePerson(name,sex){//父类
	this.name=name;
	this.sex=sex;
}
CreatePerson.prototype.showName=function(){
	alert(this.name);
}
var p1=new CreatePerson(‘小明‘,‘男‘);
p1.showName();

function CreateStar(name,sex,job){//子类
	//继承父类
	CreatePerson.call(this,name,sex);
//	this.name=name;
//	this.sex=sex;
	this.job=job;
}

var p2=new CreateStar(‘黄晓明‘,‘男‘,‘演员‘);

二、方法的继承

//var a={
//	name:‘小明‘
//};

//var b=a;
//b的name属性的修改影响了a的name属性,两者相互影响,解决办法用for in
//for(var attr in a){
//	b[attr]=a[attr];
//}
//var b={};
//extend(b,a);
//b.name=‘小强‘;
//alert(a.name);

//封装函数
function extend(obj1,obj2){
	for (var attr in obj2) {
		obj1[attr]=obj2[attr];
	}
}


function CreatePerson(name,sex){//父类
	this.name=name;
	this.sex=sex;
}
CreatePerson.prototype.showName=function(){
	alert(this.name);
}
var p1=new CreatePerson(‘小明‘,‘男‘);
p1.showName();

function CreateStar(name,sex,job){//子类
	//继承父类
	CreatePerson.call(this,name,sex);
//	this.name=name;
//	this.sex=sex;
	this.job=job;
}
//方法继承:for in 拷贝继承(jquery也是采用拷贝继承)
extend(CreateStar.prototype,CreatePerson.prototype);
var p2=new CreateStar(‘黄晓明‘,‘男‘,‘演员‘);
p2.showName();

三、继承实例-拖拽

 

 

  

对象继承

标签:拖拽   .sh   java   extend   test   调用   bsp   query   相互   

原文地址:https://www.cnblogs.com/yangxue72/p/8404431.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!