位置: 编程技术 - 正文

Javascript继承机制详解(js继承怎么实现)

编辑:rootadmin

推荐整理分享Javascript继承机制详解(js继承怎么实现),希望有所帮助,仅作参考,欢迎阅读内容。

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

学完了Javascript类和对象的创建之后,现在总结一下Javascript继承机制的实现。Javascript并不像Java那样对继承机制有严格明确的定义,它的实现方式正如它的变量的使用方式那样也是十分宽松的,你可以设计自己的方法“模仿”继承机制的实现。有以下几种方法:

1、对象冒充

function定义的代码块就相当于一个类,你可以用而且它有this关键字,你可以用this为它添加属性和方法,上述代码中有以下两句:

this.newMethod1=classA; this.newMethod1(str);

classB中定义了newMethod1变量,它是一个引用,指向了classA,并且还调用了classA,这两句代码的作用等同于直接将classA代码块中的内容直接复制到这里,这样创建的classB对像当然具有classA的属性和方法了。对象冒充还可以实现多继承,如下:

不过,classY会覆盖classX中同名的属性和方法,如果设计没问题的话,classz也不应该继承具有相同属性和方法的不同类。

Javascript继承机制详解(js继承怎么实现)

2、利用call()方法

call()方法中第一个参数传递一个对象,这里的this指的是当前对象,后面的参数(可能有多个)是指传递给调用call()方法的类(函数)所需要的参数,classA.call()也是相当于直接将classA代码块中的内容直接复制到这里,classB的对象同样可以直接使用classB中的变量和方法。

3、原型链

这里对类的定义要用prototype关键字,定义function时不带有参数,prototype后面的变量或方法相当于java中被static修饰后的属性和方法,是属于所有对象的,这里有个特殊之处:cB.prototype=new cA();该句话相当于将cA对象内容复制给cB,cB还可以追加自己的属性和方法。

4、混合方法

这里可以将属性封装在类体内,而方法利用原型方式定义,个人感觉,这是一个很好的设计方法,利用prototype定义的函数可以为多个对象重用,这里需要注意两点:cB类体内有cA.call(this,name);同时还要将cB原型赋为cB对象,即:cB.prototype=new cA();cA.call(this,name)同样相当于将cA类块内的代码复制于此,后面一句话又将cA的方法添加给cB,同时cB还可以追加自己的属性和方法。

以上是本次对Javascript继承机制的总结,不足之处望各位指正批评。

Javascript创建类和对象详解 现总结一下Javascript创建类和对象的几种方法:1、原始的创建方法:scripttype="text/javascript"varperson=newObject();person.name="Amy";person.sex="Woman";person.show=function(){d

JavaScript箭头(arrow)函数详解 为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。本文我们介绍箭头(arrow)函数的优点。更简洁的语法我们先

JavaScript基础之this详解 JavaScript的this和Java等面向对象语言中的this大不一样,bind()、call()和apply()函数更是将this的灵活度进一步延伸。为了保证可读性,本文采用意译而非直译

标签: js继承怎么实现

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

上一篇:JavaScript的继承实现小结(js的继承方式)

下一篇:Javascript创建类和对象详解(js如何创建类)

  • 为什么要计提递延所得税
  • 固定资产40%部分能抵即征即退项目吗
  • 红冲发票跨年怎么操作
  • 注销公司报表应注意什么
  • 现金管理规定有哪些主要内容
  • 应收账款入账金额的确定方法
  • 发行股票所支付的手续费计入
  • 服务类的企业发票税率
  • 国税里发票采集中的税控机动车发票是指什么发票?
  • 公司租车费用会计分录
  • 个人所得税法规定可减征个税的情形有
  • 节假日加班工资是平时的几倍?
  • 集团公司奖励发放遵循什么原则
  • 研发支出费用如何计算应交所得税?
  • 私立幼儿园收的特色课费可以追回吗
  • 个人技术服务费增值税税率是多少啊
  • 企业赠送客户产品如何账务处理
  • 小规模普通发票可以抵扣吗
  • 已认证的进项税额转出怎么做账务处理
  • win101703怎么看
  • 跨月冲红发票需收回原发票
  • 高新技术企业研究开发费用加计扣除
  • 收到发票怎么写说明
  • 提升一下网速
  • linux网卡lo
  • 施工企业自建自用的工程
  • 在php中,字符串有哪些表示形式
  • 逾期未收回包装物押金税率
  • 什么是包装物押运
  • 三维目标通用模板
  • 应付福利费和应付职工薪酬的关系
  • php管理员和用户登录
  • js点击li
  • 预算周转金会计处理怎么做
  • js监听事件和处理事件
  • 物流辅助服务要办许可证吗
  • 建筑业的印花税是按含税还是不含税?
  • 本期应补退税额和期末未缴税额
  • java io读写
  • Sqlite 常用函数 推荐
  • sqlserver2008分页查询
  • dedecmsv6
  • 资产处置损益明细表货币资金怎么填
  • 个税申报怎样作废
  • 电子承兑汇票支付信用查询
  • 个体工商营业执照注销需要缴费吗
  • 固定资产售后回租融资租赁利息可以抵扣进项税额么
  • 餐饮开票税率
  • 社保退回的钱怎么做会计分录
  • 其他综合收益 综合收益
  • 维修基金只有收据没有发票吗
  • 提供劳务的收入计入什么科目
  • mysql单表数据建议
  • MySQL数据迁移到oracle
  • mac忘记mysql初始密码
  • 怎样u盘安装系统软件
  • p2p是什么文件
  • win7系统怎么关闭放大镜?
  • 多个网页怎么从一个网页中显示
  • Linux mysql如何更改root密码以及忘记root密码的修改方法
  • linux关闭系统
  • linux在实际工作中的应用
  • win7鼠标突然不能用了
  • windows8兼容性
  • [置顶] 此外,车牌号:458143(懂得都懂[吃瓜])
  • 批处理命令是什么语言
  • angularjs4
  • js中的apply方法
  • node性能优化
  • unity的vector3
  • 模拟新浪微博用户注册程序设计
  • 利用python绘图
  • linux查看shell脚本
  • 简并税率是什么意思
  • 关于工龄认定的司法解释
  • 福建医保省外报销政策
  • 外经证注销网上操作
  • 消费税的征税范围包括
  • 纳税申报表有哪几种类型
  • 车辆购置税非本人可以代缴吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设