位置: 编程技术 - 正文

JS继承--原型链继承和类式继承(js继承原型链)

编辑:rootadmin

什么是继承啊?答:别人白给你的过程就叫继承。

为什么要用继承呢?答:捡现成的呗。

好吧,既然大家都想捡现成的,那就要学会怎么继承!

在了解之前,你需要先了解构造函数、对象、原型链等概念......

JS里常用的两种继承方式:

原型链继承(对象间的继承)类式继承(构造函数间的继承)

原型链继承:

利用proInherit(obj)方法,传入对象,就能实现对象的属性及方法的继承,这个方法不是内置方法,所以要自己定义,非常简单:

其中F()为一个临时的空的构造函数,然后将F()的原型设置为父对象,但是同时它又通过受益于_proto_链接而具有其父亲对象的全部功能。

链式图解:

类式继承:

下面我们来看看这个继承的关键方法:classInherit(Parent,Child)

分析一下这个方法:

首先创建一个空的构造函数F(),用其实例的_proto_属性来构建父类与子类的原型链。起到一个代理的作用,目的是为了防止C.prototype = P.prototype,这样会在子类实例化后修改属性或方法时候,连同父类一起修改。整体采用即时函数并且在闭包中存储F(),防止多次继承时候创建大量的空的构造函数,从而减少消耗内存。最后一行的意思是,由于原型链的关系,C的实例对象的constructor会指向P,所以重新设置。

链式图解:

这种方式虽然在实例的时候继承了原型方法,但是父类的属性无法继承,下面介绍一种复制继承,算是对类式继承的补充。

复制继承:

分析下copyInherit(p,c)

当一个值赋予一个变量时候,分为传值和传引用两种方式,当你父对象内属性包含数组类型或是对象类型时候, c[i] = toStr.call(p[i]) == astr ? [] : {};这一句会避免修改子对象属性而引起的父对象属性被篡改。

总结:

类式继承比较普遍,因为大家都比较熟悉这种构造函数方式,但是内存占用比较大。而原型式继承,占用内存比较小,但是包含数组,或者对象类型的克隆比较麻烦。复制继承简单,而且应用广泛。

推荐整理分享JS继承--原型链继承和类式继承(js继承原型链),希望有所帮助,仅作参考,欢迎阅读内容。

JS继承--原型链继承和类式继承(js继承原型链)

文章相关热门搜索词:js中的原型和原型链,js 继承原理,js 原型链继承 原型式继承,js 原型继承的几种方法,js原型链constructor,js 原型链继承 原型式继承,js 原型链继承 原型式继承,js 原型链继承 原型式继承,内容如对您有帮助,希望把文章链接给更多的朋友!

Node.js生成HttpStatusCode辅助类发布到npm 作为一个好的RestfullApi不仅在于serviceurl的语义,可读性,幂等,正交,作为http状态码也很重要,一个好的HttpStatusCode给使用者一个很好的响应,比如表示

分析Node.js connect ECONNREFUSED错误 最近在准备Angularjs+node.jsdemo的时候在我的mac开发中遇见此错误,如下:events.js:throwarguments[1];//Unhandled'error'event^Error:connectECONNREFUSEDaterrnoException(net.js::

关于JavaScript中的关联数组分析 通常的数组在填充时会隐式或者显示指定数组下标,但JS中数组可以以名字的形式为元素赋值,这就形成了关联数组,如:vararr=newArray();arr["china"]="beijing

标签: js继承原型链

本文链接地址:https://www.jiuchutong.com/biancheng/377643.html 转载请保留说明!

上一篇:javascript中常用编程知识(JavaScript中常用的数据类型有)

下一篇:Node.js生成HttpStatusCode辅助类发布到npm

  • 小微企业所得税优惠政策最新2022
  • 一般纳税人购进货物用于免征增值税项目
  • 税务金三系统是什么?
  • 个人勾机给公司开票怎么开
  • 以个人名义汇货要交税吗
  • 母公司给子公司注资需要什么手续
  • 计提的坏账准备可以税前扣除吗
  • 外购商品捐赠进哪个科目
  • 应交税费例子
  • 去年滞纳金没入营业外今天怎么账务处理
  • 100万劳务费发票多少税
  • 营业收入就是开票不含税么
  • 京东佣金费用计算公式
  • 劳务成本算营业成本吗
  • 暂估工资成本
  • 退所得税的分录
  • 外购商品用于促销能抵扣吗
  • 奖金用现金发放违法吗
  • 跨月冲红的发票怎么做账
  • 航天开票系统清单流程
  • 地下商铺出售产权归属
  • 国家减免税额怎么入账
  • 行政单位提现预算会计处理
  • 出租房屋免租期如何确认收入
  • 补交申报的利息怎么入账
  • win10下载软件被阻止安装怎么办
  • 刚装好的服务器怎么安装
  • ccc.exe是什么进程
  • 直线法摊销的账面价值
  • 汇算清缴补交的所得税怎么记帐
  • 公司支付员工生育津贴怎么做账
  • nodejs.org
  • thinkphp3.0
  • javascriptjs
  • 物流公司的会计好做吗
  • 往来款的意思
  • 固定资产一次性折旧账务处理
  • 主营业务成本可以设置二级科目吗
  • 让渡资产使用权属于收入吗
  • 关于进项票少的解决方案
  • 个体户不刻公章也要报税吗
  • 发票勾选后什么时候开票
  • 本年度的进项可以结转到下一年度吗
  • 如何设置长期有效的二维码
  • 政府补助收入的会计处理
  • 收到国家电网信息但号码不是的
  • 挂靠指的是什么意思?
  • 资产负债表其他综合收益
  • 附加税多计提了怎么做分录
  • 流动比率表示方法
  • 如何在个人所得税app上修改扣缴义务人
  • 增值税 附加税费
  • 公司一般户的钱怎么拿出来
  • 上家失控发票补税补不起
  • 长期待摊费用处置
  • 加计抵减10%政策适用范围
  • 如何做大建筑业企业
  • 为什么要依法管理
  • win7系统如何隐藏桌面
  • solaris11.4安装教程
  • wpr是什么软件
  • 苹果mac os x 10.7.5如何升级
  • WinXP巧用Netsh工具快速填写IP参数
  • ubuntu命令行调节音量
  • Windows RT 8.1 Update3(KB3033055)开始菜单多图欣赏
  • win7怎么运行itunes
  • 如何一键恢复win10设置
  • 微软商店更新错误
  • win10系统开机重装教程
  • cocos2dx运行原理
  • 我的第二个姐姐用英语怎么说
  • 黑客需要学哪些
  • cluster into
  • 安卓开发遇到的问题
  • Python的二维列表存储
  • jquery怎么实现分页功能
  • 河南省发票查询真伪
  • 2024年深圳房价
  • 深圳买新房契税一般什么时候交比较好
  • 固定资产折旧的影响因素
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设