位置: 编程技术 - 正文

Javascript中的Prototype到底是什么(JavaScript中的方法名不区分大小写)

编辑:rootadmin

推荐整理分享Javascript中的Prototype到底是什么(JavaScript中的方法名不区分大小写),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:JavaScript中的数据类型,JavaScript中的数据类型分为两大类,JavaScript中的this,JavaScript中的this,JavaScript中的NaN代表什么,JavaScript中的数据类型分为两大类,JavaScript中的数据类型分为两大类,JavaScript中的方法名不区分大小写,内容如对您有帮助,希望把文章链接给更多的朋友!

Javascript也是面向对象的语言,但它是一种基于原型Prototype的语言,而不是基于类的语言。在Javascript中,类和对象看起来没有太多的区别。

什么是prototype:

function定义的对象有一个prototype属性,prototype属性又指向了一个prototype对象,注意prototype属性与prototype对象是两个不同的东西,要注意区别。在prototype对象中又有一个constructor属性,这个constructor属性同样指向一个constructor对象,而这个constructor对象恰恰就是这个function函数本身。 是不是很绕?用伪代码表示如下:

还不明白?看图吧:

prototype的作用:

这个prototype到底有什么作用呢?看下面的例子:

奇怪吧,明明没有为test设置name属性,可是为什么会有值?

这就是prototype的功劳了,uw3c中prototype属性中的name对象,在uw3c被new构造函数之后,被继承到了对象test的属性中。接着看:

为什么alert的值不是“js”?这个过程大致如下:

第一步是建立一个新对象(test)。

Javascript中的Prototype到底是什么(JavaScript中的方法名不区分大小写)

第二步将该对象(test)内置的原型对象设置为构造函数(就是uw3c)prototype 属性引用的那个原型对象。

第三步就是将该对象(test)作为this 参数调用构造函数(就是uw3c),完成成员设置等初始化工作。

其中第二步中出现了一个新名词就是内置的原型对象,注意这个新名词跟prototype对象不是一回事, 为了区别我叫它inobj,inobj就指向了函数uw3c的prototype对象。在uw3c的prototype对象中出现的任何属性或者函数都可以在test对象中直接使用,这个就是JS中的原型继承了。

通常,这样创建一个对象:

以上,使用new关键字,通过对象(函数也是特殊对象)创建一个对象实例。

在基于类的语言中,属性或字段通常都是在类中事先定义好了,但在Javascript中,在创建对象之后还可以为类添加字段。

以上,color这个字段只属于当前的cat实例。对于后加的字段,如果想让animal的所有实例都拥有呢?

通过Prototype不仅可以添加字段,还可以添加方法。

原来通过prototype属性,在创建对象之后还可以改变对象的行为。比如,可以为数组这个特殊对象添加一个方法。

除了通过prototype为对象定义属性或方法,还可以通过对象的构造函数来定义类的属性或方法。

以上做法的也可以让所有的animal实例共享所有的字段和方法。并且还有一个好处是可以在构造函数中使用类的局部变量。

其实,一个更加实际的做法是把通过构造函数结合通过prototype定义一个类的字段和行为。

Prototype允许我们在创建对象之后来改变对象或类的行为,并且这些通过prototype属性添加的字段或方法所有对象实例是共享的。

深入php面向对象、模式与实践 1语法1.1基础语法clone需要操作原对象,但又不想影响原对象.$K_back=clone$K;基本数据类型和数组都为真复制,即为真副本,当属性为对象时,为假复制,改变副本

Bootstrap布局组件应用实例讲解 本文实例介绍了Bootstrap布局组件应用实践,分享给大家供大家参考,具体内容如下字体图标的应用示例buttontype="button"class="btnbtn-default"spanclass="glyphiconglyp

基于javascript简单实现对身份证校验 本文实例介绍了javascript简单实现对身份证的校验的关键性代码,分享给大家供大家参考,具体内容如下varvcity={:"北京",:"天津",:"河北",:"山西",:"

标签: JavaScript中的方法名不区分大小写

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

上一篇:让图片跳跃起来 javascript图片轮播特效(让图片跳跃起来怎么弄)

下一篇:JS组件系列之Bootstrap Icon图标选择组件(bootstrap js插件)

  • 公司利润税怎么交
  • 购买私募基金有风险吗
  • 补缴房产税有滞纳金吗
  • 房地产可抵扣的税有哪些
  • 13%税开成了3%怎么报税
  • 中小企业免税证明
  • 专票当成普票入账怎么调整
  • 自行研发无形资产暂时性差异
  • 建筑业营改增的主要内容
  • 收到法人的借款
  • 什么费用可以列支拆迁补偿费
  • 企业计提预提费用的会计分录如何编制?
  • 销售原材料的账务处理
  • 预提费用入账依据
  • 小规模纳税人税收优惠政策
  • 增值税普通发票和普通发票的区别怎么交税
  • 外出经营活动税收管理证明和跨区域涉税事项报告表
  • 以公司名义办宽带怎么办
  • 投资性房地产其他综合收益递延所得税
  • 资产和利润表的关系
  • 向分公司拨款如何填现金流量表
  • 进项发票已经抵扣怎么做退回处理
  • 工业总产值计算方式计算公式
  • 出租设备计提折旧记什么科目
  • 牛奶的增值税普通发票
  • 自然人税收管理扣缴端(原个税)申报实训
  • 跨月预缴如何做账
  • 借贷记账法的记账规则是
  • 哪些抵押物必须登记才有效
  • 小规模公司减免的增值税怎么做账
  • 企业间贴现手续费怎么记账?
  • 笔记本电脑按键掉了怎么修
  • 逾期未申报如何申报
  • 加利福尼亚riverside
  • php include path
  • 单位房转卖
  • 代销商品受托方怎么做账
  • Pont Rouge (Red Bridge) over the Palmer River in Sainte-Agathe-de-Lotbinière, Quebec, Canada (© Jean Surprenant/Getty Images)
  • 世界上最完美的犯罪
  • custom用法
  • 建行企业网上银行主管盾权限分配
  • 民办幼儿园需要什么资质
  • 私人打款到对公账户要交税吗
  • 非财政补助结转和非财政补助结余的区别
  • 异地预缴印花税怎么做账
  • 应收账款收不回来做坏账处理分录
  • 联营企业有重大影响吗
  • 公司印章样子
  • 一般劳务报酬个人所得税退税吗
  • 企业增值税申报流程
  • 税号指的是什么
  • 增值税专用发票怎么开
  • 融资租赁的会计处理方法举例子
  • 其他应付款怎么处理
  • 汇算清缴的会计分录怎么做
  • 费用报销单怎么写 样本图片
  • MySQL删除重复数据只保留一条
  • mysql 5.7.17 winx64安装配置方法图文教程
  • win7开机启动
  • 笔记本用linux系统
  • 启动图形界面
  • centos7如何添加光盘
  • win8.1内存占用过高
  • centos7如何进入命令行
  • win7怎么查看
  • Mtdacq.exe - Mtdacq是什么进程 有什么用
  • Linux系统怎么设置窗口关闭按键在右侧
  • win8.1系统电脑设置闪退
  • Linux中通过Socket文件描述符寻找连接状态介绍
  • css自学
  • js脚本使用
  • fortune命令
  • firefox margin-top失效的原因与解决办法
  • js function的this指向
  • javascript例题
  • 怎样在电子税务局查询财务报表
  • 河北网上税务登记流程
  • 煤炭资源税税率是多少啊
  • 个人所得税票样
  • 征管法 追征期起如何界定
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设