26 - JavaScript对象继承

一、继承

1》原型链
			
	用法:把实例的父类给子函数的原型
	
	缺点:
		1》因为修改了obj1.arr后obj2.arr也变了,因为来自原型对象的引用属性里所有实例共享的
		2》创建子类实例时,无法向父类构造函数传递参数
			
2》借用构造函数
			
		核心:借父类的构造函数来增强子类实例,就是说,相当于复制了一份父类的属性或者方法给子类了
			
		优点:
				a)解决了子类实例共享父类引用属性的问题
				b)创建子类实例时,可以向父类构造函数传递参数
		缺点:
				a)无法实现复用,每一个子类实例都有一个新的run函数,如果实例的对象多了,内存消耗过大
			
3》继承方式:(最常用的继承方式)
			a)组合继承
				
			优点:
					1》不存在引用属性共享的问题
					2》可传递参数
					3》方法可复用	

			缺点:(小瑕疵)
					子类原型上有一份多余的父类实例的属性

		b)原型式继承
				
			核心:用一个函数,生出来一个新的对象	
			优点:从已有对象繁衍出新的对象,不需要创建自定义类型
			缺点:
					1》原型的引用属性会互相影响(公用一个地址)			
					2》无法实现代码复用,属性是后添加的,都没用到函数封装

		c)寄生式继承
			
		核心:创建新对象===》增强对象(添加属性或者方法)===》返回对象
			
		d)寄生组合式继承
				
			优点:修正组合继承的缺点,只使用一次构造函数
			缺点:写法繁琐
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值