位置: 编程技术 - 正文

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)

  • 进项税转出包括什么
  • 所得税费用的计提
  • 对公账户要收手续费吗
  • 金税盘维护费全额抵扣吗
  • 房租收入怎么报税
  • 期间费用的界定
  • 人力资源公司代招的岗位可以去吗
  • 企业季度预缴所得税怎么账务处理
  • 分期收款销售商品
  • 售后服务企业返利政策
  • 合伙企业的合伙协议
  • 会计集中核算模式
  • 摊销租金是什么意思
  • 将外购商品作为非货币性
  • 稽查查补税款企业所得税
  • 咨询服务费是否可以税前扣除
  • 股权继承印花税单方交
  • 企业股权转让有什么好处
  • 损益类账户包括成本类吗
  • 成本费用总额包括信用减值损失吗
  • 低值易耗品与固定资产有相同的特征,表现在哪里?
  • 不动产进项税为什么不能抵扣
  • 电脑开机黑屏没信号怎么回事
  • 羊毛衫变形了还能变回来吗
  • 制造费用结转到生产成本
  • 无形资产摊销的会计及账务处理
  • 陆家嘴金融贸易区管委会主任
  • bootstrap步骤
  • php 构造方法
  • 当月认证的发票可以进行进项税额转出嘛
  • git简明教程
  • php获取前一天的时间
  • php文件上传操作流程图
  • 网上学电脑的软件
  • python编程bim
  • 培训机构先收费后付费
  • 删除python包
  • 一般纳税人年收入500万交多少税
  • 财务报表申报错误情况说明范文
  • 稿费的个税是怎么算的
  • 欠款收不回来了会计分录
  • 企业所得税季度申报表季度平均值
  • 饭店开业多久可以正常
  • 个人所得税计入应付职工薪酬吗
  • 支付的税费现金流量表公式
  • 买房定金转给销售有效吗
  • 购买税控盘用银行抵扣吗
  • 记账凭证应交税费填写样本图片
  • 公司注销帐务怎么处理
  • 生产成本和主营业务成本金额一样吗
  • 销售净利润怎么算
  • 一个简单的群规怎么写
  • 全民用车app下载
  • 取消默认
  • win7系统升级到win10后,还能还原回来吗
  • 不能在windows7里进行设置的网络位置是
  • centos7怎么看cpu和内存
  • linux系统批量替换内容
  • windowxp背景图
  • ubuntu写脚本
  • macos time machine
  • svaplayer.exe - svaplayer是什么进程 有何作用
  • Win10怎么打开屏幕键盘
  • Win10 Mobile RedStone预览版14283更新内容汇总
  • 手把手教你在家制作豆腐脑
  • The graphics pipeline ,Open GL 渲染管线
  • 编写python
  • 用python做web
  • 让ie运行js时提示允许阻止内容运行的解决方法
  • python中子类继承父类的静态方法吗
  • javascript数据
  • jquery的checkbox,radio,select等方法小结
  • 企业所得税汇总纳税备案表
  • 合作社的税率是多少
  • 曲靖市国家税务局杨春天
  • 微信密码忘记了,手机号也没有用了,怎么办
  • 北京买车如何摇号
  • 改革的财税制度是什么
  • 省级税务机关是什么
  • dhl清关需要提供资料嘛
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设