25.原型继承和原型链继承?

所谓继承: 就是子对象自动拥有父对象的属性和方法, 继承可以提 高代码的复用性。 JS里的继承主要依靠是的原型链。让原型对象(每一个构造函数都有一个原型对象porotype)的值,等于另一个类型的实例,即实现了继 承;另外一个类型的原型再指向第三个类型的实例,以此类推,也 就形成了一个原型链。
作用:实现实例共享方法和属性的继承,原型继承。
优点:不用将每个实例一样的属性和方法放在构造函数中,每次new都会创造内存,浪费内存,prototype减少内存的浪费

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
	</head>
	<body>
		
	</body>
</html>
<script type="text/javascript">

//定义Animal类
function Animal(age){
	this.age = age;
}

Animal.prototype.go = function(){
	alert("跑");
}

//定义Person类(ES3中叫对象)
function Person(id,name){
	this.id = id;
	this.name = name;
}

Person.prototype = new Animal(10);

Person.prototype.eat = function(str){
	alert(this.name+"在吃"+str);	
}

//定义Programmer类型
function Programmer(language){
	this.language = language;
}

//用prototype属性实现继承
Programmer.prototype = new Person("007","冲儿",28);

Programmer.prototype.writeCode=function(xuqiu){
	alert(this.name+"用"+this.language+"编程语言,努力地写着"+xuqiu);
}


window.onload = function(){
	let p1 = new Programmer("js");
	p1.eat("泡面");
	p1.go();
	p1.writeCode("飞机大战");
}

</script>

01prototype继承的内存示意图:
01prototype继承的内存示意图

02prototype继承示意图(子类自己特有的prototype方法)

02prototype继承示意图(子类自己特有的prototype方法)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值