javaScript继承

继承

1.问题:构造函数只能重用代码结构,但是浪费内存
(1) 因为放在构造函数中的方法定义,每创建一个新对像都要重复创建这个方法对象的副本!------浪费内存
(2)所以构造函数中不应该包含方法的定义,只包含属性的定义
(3)所有对象都要使用的公共方法定义在哪?------继承
什么是继承:父对象中的成员,子对象无需重复创建就可直接使用
优点:既可以重用代码,又可以节约内存
用处:只要同一类型多个对象都需要公共的方法定义时,就要用继承实现
用法:
(1)找到所有子对象共同的父对象
a.定义每个构造函数时都会附赠一个父对象——原型对象(prototype
b.可通过“构造函数.prototype"属性访问到这个占时为空的原型对象(妈妈身上有一个prototype属性指向爸爸)
在这里插入图片描述
c.new可以让新创建的子对象自动继承构造函数的原型对象
new会自动设置
子对象._ _ prototype _ _=构造函数.prototype
孩子 .的 -----爹 ---------------是 -妈妈的 老公
(2)将所有子对象公共的方法定义添加到父对象中,只能通过强行赋值
构造函数.prototype.公共的方法=function(){…this.属性名…}
(3)结果:所有子对象因为继承关系而直接使用对象中的公共方法
a。当子对象调用原型对象中的方法时,js引擎先在子对象本地尝试查找。如果没找到,就会沿__proto__属性,自动去父对象(原型对象)中查找!

目前为止this的用法4种:
1.obj.fun()----fun()中的this-> .前的对象
2.new Fun()—Fun()中的this->new创建的新对象
3.fun()或(function(){…})() 中的this->window
4.Student.prototype.intr=function(){…this.sname…}中this->将来调用该函数的子对象

自定义继承

给孩子换爹
只修改一个孩子的父对象
对象._ _ proto _ _=新父对象
_ _ prototype _ _有兼容性问题
用object.setPrototypeOf(子对象,新的父对象)

同时更换多个子对象的爹

在孩子出生前,让妈妈改嫁
a.修改构造函数的prototype属性(妈妈的老公),指向新对象
b.在创建子对象之前就更换
构造函数.prototype=新原型对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值