位置: 编程技术 - 正文

JavaScript 继承机制的实现(待续)(js继承的方式)

编辑:rootadmin
1.对象冒充 原理:构造函数使用this关键字给所有属性和方法赋值(即采用类声明的构造函数方式)。 因为构造函数只是一个函数,所以可使ClassA的构造函数成为ClassB的方法,然后调用它。ClassB就会收到ClassA的构造函数中定义的属性和方法。 例如: 下面方式定义的ClassA和ClassB: 关键字this引用的是构造函数当前创建的对象。 不过在这个方法中国,this指向的是所属的对象。这个原理把ClassA作为常规函数来建立继承机制,而不是作为构造行数。 如下使用构造函数ClassB可以实现继承机制: 这段代码中,为(但我觉得这里应该是"把")ClassA赋予了方法newMethod(记住函数名只是指向它的指针)。然后调用该方法,传递给它的是ClassB的构造函数的参数sColor。最后一行代码删除了对ClassA的引用,这样以后就不能再调用它。 所有的新属性和新方法都必须删除了新方法的代码行后定义。否则,可能会覆盖超类的相关属性和方法: 运行下面的例子: 例如,如果存在两个类ClassX和ClassY,ClassZ想继承这两个类,可以使用下面的代码: 这里存在一个弊端,如果ClassX和ClassY具有同名的属性或方法,ClassY具有高优先级,因为它从后面继承。除了这一点小问题外,用对象冒充实现多继承机制轻而易举。 由于这种继承方式的流行,ECMAScript的第三版为Function对象加入了两个新方法,即call()和apply()。 2.call()方法 call()方法与经典的对象冒充方法最相似的方法。它的第一个参数用作this的对象。其他参数都直接传递给函数自身。例如: 在这个例子中,函数sayColor()在对象外定义,即使它不属于任何对象,也可以引用关键字this。对象的obj的color属性等于"red"。调用call()方法时,第一个参数是obj,说明 应该赋予sayColor()函数中的this关键字的值是obj。第二个和第三个参数是字符串。它们与sayColor()函数中的参数prefix和suffix匹配,最后生成消息"The color is red, a very nice color indeed." 要与继承机制的对象冒充方法一起使用该方法,只需将前三行的赋值、调用和删除代码替换即可: 这里,想让ClassA中的关键字this等于新创建的ClassB对象,因此this是第一个参数。第二个参数sColor对两个类来说都是唯一的参数。 3.apply()方法 apply()方法有两个参数,用作this的对象和要传递给函数的参数和数组。例如: 这个例子与前面的例子相同,只是现在调用的是apply()方法。调用apply()方法时,第一个参数仍是obj,说明应该赋予sayColor()中的this关键字值是obj。第二个参数是由两个字符串组成的数组,与sayColor()的参数prefix和suffix匹配。生成的消息仍是 "The Color is red,a nice color indeed." 该方法也用于替换前三行的赋值、调用和删除新方法的代码: 同样的,第一个参数仍是this。第二个参数是只有一个值color的数组。可以把ClassB的整个arguments对象作为第二个参数传递给apply()方法: 当然,只有超类中的参数顺序与子类中的参数顺序完全一致时才可以传递参数对象。如果不是,就必须创建一个单独的数组,按照正确的顺序放置参数。此外,还可以使用call()方法。

推荐整理分享JavaScript 继承机制的实现(待续)(js继承的方式),希望有所帮助,仅作参考,欢迎阅读内容。

JavaScript 继承机制的实现(待续)(js继承的方式)

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

JavaScript 构造函数 面相对象学习必备知识 functionA(x){this.x=x;}varobj=newA(5);alert(obj.x);这段代码十分简单,但是我们重要的是看到了一个十分惊讶的结果,obj被我们赋予了一个属性x,就如同我们在C#

JavaScript 原型与继承说明 functionA(x){this.x=x;}alert(A.prototype);alert(A.prototype.constructor);根据弹出的结果,我们可以得到:原型对象是由函数的构造函数创建,它所拥有的属性能被所有

JavaScript的单例模式 (singleton in Javascript) 单例模式的基本结构:MyNamespace.Singleton=function(){return{};}();比如:MyNamespace.Singleton=(function(){return{//Publicmembers.publicAttribute1:true,publicAttribute2:,publicMethod1:fu

标签: js继承的方式

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

上一篇:JavaScript 面向对象编程(2) 定义类(javascript面向对象精要)

下一篇:JavaScript 构造函数 面相对象学习必备知识(javascript构造函数创建对象)

  • 两处以上取得工资如何交社保
  • 增值税是购货方交还是销货方交
  • 在产品,半成品,产成品是什么意思
  • 零售商品收入会计分录
  • 委托加工物资贷方
  • 到账的钱还能退回去吗
  • 存货跌价卖出需要进项转出吗
  • 老板给的钱计入什么科目
  • 生产车间计提折旧分录
  • 开完发票业务没收入需要确认收入入账吗?
  • 核定征收的企业所得税怎么算
  • 个人所得税期末为负数审计调整
  • 小微企业企业税率表
  • 物业公司安装监控
  • 电子税务局变更经营地址怎么操作
  • 营改增后小规模纳税人转一般纳人
  • 企业的其他业务收入有
  • 统一社会信用代码证
  • 税务咨询费用
  • 已认证的发票对公司影响
  • linux怎么安装程序
  • 无生产怎样结转成本费用
  • 【免费】多种方法手把手教你如何将自己做的网页做成网络链接(直接访问)
  • win10应用商店下载的软件在哪
  • msconfig配置文件修改
  • win10版本激活码
  • 建筑劳务公司一年挣多少钱
  • 银行承兑汇票开出后可以撤销吗?
  • Mac笔记本电脑截图
  • linux如何删除lv
  • 购货折让会计分录
  • 银行提取现金会查征信吗
  • 应收账款需要计提损失准备吗
  • 弃置费用的会计处理
  • 地税没申报罚款多少
  • 工会经费相关问题有哪些
  • cuda安装步骤
  • 差旅费用按业务分为
  • 小规模纳税人无进项票怎么办
  • 没有残疾人就业保障金需要申报吗
  • 取得了水电费发票怎么做
  • 员工出差的费用计入什么科目
  • html前端开发教程
  • 企业收取的罚款需要交企业所得税吗
  • 装修及室内设计学什么
  • 产品检测费计入成本吗
  • 增值税进项发票勾选认证流程
  • 代数分配法的优缺点和适用范围
  • 个体工商户纳税人类型怎么填
  • 发票收款人和复核人可以是一个人吗
  • 委托加工业务中需要计算缴纳增值税销项税
  • 合伙企业是否需要缴纳印花税
  • 土地使用税退税怎么做会计分录
  • 广告设计合同属于什么合同
  • 在建工程发生的运费计入什么科目
  • 企业哪些税费不通过应交税费账户进行核算
  • 暂估成本以后也没有票回来了
  • 进项和销项税月底有余额吗
  • 营业外支出可以抵扣进项税吗
  • 基本户注销了还能查询流水吗
  • 年初建账考虑要点有哪些
  • bash是什么意思中文翻译
  • 电脑开机自动弹出
  • 如何重装windows8
  • 如何解决win7系统中鼠标键盘不能用
  • 90后的毕业照
  • preorder遍历
  • bootstrap内容
  • perl脚本输出变量
  • unity游戏开发入门经典
  • js中的正则表达式的例子
  • python脚本基本命令
  • JavaScript设置字体颜色
  • python自动化部署oracle csdn
  • jquery.handleerror
  • javascript基础
  • python with 用法
  • 福建米其林餐厅有几家
  • 台资企业有什么
  • 武汉市国税局局长黄英简历
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设