位置: 编程技术 - 正文

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)

  • 民非 企业所得税
  • 企业所得税计算表
  • 耕地占用税的税目
  • 移动平均加权法是什么意思
  • 对公账户余额和实际不符
  • 补贴收入企业所得税
  • 个人所得税里累计专项扣除是什么意思
  • 企业房产税怎么申报缴纳
  • 个人购买房产是指什么
  • 节税租赁和销售的区别
  • 验资帐户
  • 不开发票的收入怎么处理?
  • 怎样冲减虚开发票的会计分录
  • 企业所得税成本确认原则
  • 增值税发票抵扣联丢失怎么办
  • 小规模季度不超30万需要交什么税
  • 工会经费的缴费主体
  • 货代免税是否需要每年备案
  • 购买商品成本要支付哪些成本
  • 企业所得税可以退税吗
  • 企业收付款流程图
  • 个税申报系统换一台电脑要怎么办
  • 找私人买东西不发货算诈骗吗
  • 收到专票有误,已跨月未认证,销售方不红冲咋办
  • 文件夹如何更改图标
  • 激活windows11怎么激活
  • 坏账会计处理方法
  • win10电脑声道怎么设置
  • 常见的四种POST 提交数据方式(小总结)
  • 税控机抵减增值税税额
  • 盒装cpu和散装
  • 退休费用会计分录
  • ThinkPHP中html:list标签用法分析
  • php如何创建文件
  • 创建javascript函数
  • 解决谷歌浏览器自动添加书签问题
  • python3.9.4怎么用
  • 公司变卖汽车按什么税率
  • 消耗性生物资产的账务处理
  • 收取房屋租赁费的会计分录
  • 个税申报不成功,累计减除费用60000审核不通过
  • 营业执照筹建是做什么的
  • ps怎么移动某个图案
  • 房子补偿款
  • centos8 mongodb
  • sql 临时表格
  • 长期资产包含哪些
  • 销售熟食卤制品怎么做
  • 个体户年报纳税一般填多少合适
  • 车子以旧换新还能贷款吗
  • 企业计提福利费按多少提
  • 年度投资额看哪个科目
  • 营改增问题解答
  • 破产重整期间转让股权
  • 社保系统个人信息
  • 公司为员工租房应注意
  • 企业建帐的基本要求
  • 在mysql中,删除表的外键约束的关键字为()
  • mysql 的replace into实例详解
  • freebsd ifconfig
  • win10怎么获取
  • windows xp注册表清理
  • xp系统无法安装win7系统
  • win8cp
  • 延长药品使用时间的方法
  • win8.1应用商店无法连接网络
  • supervisor producer
  • 在动画制作中一般默认帧数选择为
  • js函数调用函数
  • jquery 选择
  • 输出中断
  • shell脚本 \r
  • jquery设置禁用
  • 2、BluetoothChat之扫描设备DeviceListActivity.java
  • python图片验证码输入错误不能点登陆
  • 国家税务统一代码查询
  • 进口设备如何交税
  • 贵州税务举报
  • 小微企业企业所得税是多少?
  • 保险赔款是免征还是不征?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设