位置: 编程技术 - 正文

javascript学习小结之prototype(小白学javascript)

编辑:rootadmin

推荐整理分享javascript学习小结之prototype(小白学javascript),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:小白学javascript,javascript入门教程,javascript该怎么学,javascript如何学,javascript要怎么学,javascript怎么学,javascript怎么学,javascript如何学,内容如对您有帮助,希望把文章链接给更多的朋友!

JS中的prototype是JS中比较难理解的一个部分

本文基于下面几个知识点:

1 原型法设计模式在.Net中可以使用clone()来实现原型法

原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展。我们称B的原型为A。

2 javascript的方法可以分为三类:a -> 类方法

b -> 对象方法

c -> 原型方法

例子:

3. obj1.func.call(obj)方法意思是将obj看成obj1,调用func方法,本来调用的是obj1的func方法,但是,传入obj后,改变了上下文对象,就通过obj对象来调用ojb1的方法了

好了,下面一个一个问题解决:

prototype是什么含义?

javascript中的每个对象都有prototype属性,Javascript中对象的prototype属性的解释是:返回对象类型原型的引用。

javascript学习小结之prototype(小白学javascript)

A.prototype = new B();

理解prototype不应把它和继承混淆。A的prototype为B的一个实例,可以理解A将B中的方法和属性全部克隆了一遍。A能使用B的方法和属性。这里强调的是克隆而不是继承。可以出现这种情况:A的prototype是B的实例,同时B的prototype也是A的实例。

先看一个实验的例子:

我们首先定义了baseClass类,然后我们要定义extentClass,但是我们打算以baseClass的一个实例为原型,来克隆的extendClass也同时包含showMsg这个对象方法。

extendClass.prototype = new baseClass()就可以阅读为:extendClass是以baseClass的一个实例为原型克隆创建的。

那么就会有一个问题,如果extendClass中本身包含有一个与baseClass的方法同名的方法会怎么样?

下面是扩展实验2:

实验证明:函数运行时会先去本体的函数中去找,如果找到则运行,找不到则去prototype中寻找函数。或者可以理解为prototype不会克隆同名函数。

那么又会有一个新的问题:

如果我想使用extendClass的一个实例instance调用baseClass的对象方法showMsg怎么办?

答案是可以使用call:

这里的baseinstance.showMsg.call(instance);阅读为“将instance当做baseinstance来调用,调用它的对象方法showMsg”

好了,这里可能有人会问,为什么不用baseClass.showMsg.call(instance);

这就是对象方法和类方法的区别,我们想调用的是baseClass的对象方法

最后,下面这个代码如果理解清晰,那么这篇文章说的就已经理解了:

标签: 小白学javascript

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

上一篇:简单实现JS对dom操作封装(js操作dom节点的方法)

下一篇:Javascript实现检测客户端类型代码封包(javascript test)

  • 增值税专用发票抵扣期限
  • 文化事业建设税怎么申报
  • 汇算清缴补缴税款如何做账
  • 公户的钱能买股票怎么处理
  • 车位销售技巧
  • 物业公司外包保安死亡
  • 软件著作权费用怎么入账
  • 支付增值税税控系统技术维护费用500元
  • 个人转租房屋需交税吗
  • 债权利息收入要交所得税吗
  • 实收资本不到账如何做凭证
  • 企业向个人采购产品没有发票
  • 搬迁到新租赁厂房的费用入什么科目?
  • 生产车间维修费
  • 哪些是非累计带薪缺勤?
  • 小规模纳税人按月申报还是按季申报
  • 公司员工出差补贴与差旅费报销制度
  • 工会经费怎么做账务处理
  • 原材料结转生产成本是什么意思
  • 培训的餐费入什么科目
  • 部队医院学校都没有税号吗
  • win11开机蓝屏怎么解决
  • 如何进行网速测试设置
  • 建筑公司可以开劳务吗
  • 单位给个人报销计入什么科目
  • 电脑维修会不会对电脑有影响
  • linux sed 行尾
  • 委托外单位加工发出的材料分录
  • 折扣促销方式
  • laravel 日志配置
  • 核定征收注意事项
  • 企业工商年检什么意思
  • vue3使用高德地图
  • 深度学习数据集—水果数据集大合集
  • libev & libevent简介 IntelIOT 博客园
  • 长期待摊费用如何处理
  • 应交增值税为负数怎么处理
  • 所有者权益变动表模板excel
  • 帝国cms如何搭建的
  • 公司购买黄金送客户可以取得进项抵税吗
  • php static function
  • 农机销售免税政策
  • mysql随机密码怎么看
  • python local
  • 租金的支付期限是多久
  • 开具红字增值税普通发票
  • 应付职工薪酬科目余额表怎么看
  • 累计折旧贷方余额怎么算
  • 软件开发服务费税率
  • 暂估成本的账务怎么处理
  • 私立幼儿园规模标准
  • 押金是否可以抵扣租金
  • 管理费用记错了跨年了怎么调整
  • 医保卡里收入和余额不一样
  • 银行转出去的账可以追回吗?
  • 保理手续费计入投资收益吗
  • 意外伤害条件
  • 税票是什么意思
  • 销售会员卡怎么开票
  • mysql完整教程
  • sql高级语句实例
  • 微软宣布Q3推出MRTKV3工具包
  • windows server 202
  • boxjs
  • Windows 2008之AD LDS轻型目录服务解析
  • 安装solaris11
  • windows10x预览版
  • windows预体验版本遇到问题
  • WIN7系统还原
  • li的简单应用
  • angularjs内置了很多有用的服务
  • node.js 教程
  • 迅雷如何下载快
  • 解决android 11+的保存文件路径问题
  • Dojo Javascript 编程规范 规范自己的JavaScript书写
  • easyui发送ajax请求
  • Qt for Android - ANT_HOME is set incorrectly or ant could not be located
  • 书画作品赠送仪式
  • 乾升黄酒好吗值得买吗
  • 无锡税务局稽查一分局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设