对象继承

Posted carol72

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对象继承相关的知识,希望对你有一定的参考价值。

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

三、继承实例-拖拽

 

 

  

以上是关于对象继承的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段12——JavaScript的Promise对象

VSCode自定义代码片段12——JavaScript的Promise对象

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程

使用嵌套片段和动画对象

错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”