位置: 编程技术 - 正文

关于JavaScript 原型链的一点个人理解(关于javascript函数)

编辑:rootadmin

推荐整理分享关于JavaScript 原型链的一点个人理解(关于javascript函数),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript基于原型,javascript的语句,javascript的原型,下列关于javascript的叙述正确的有,javascript基于原型,关于javascript的说法,下列关于javascript的叙述正确的有,关于javascript的说法,内容如对您有帮助,希望把文章链接给更多的朋友!

JavaScript借鉴了许多语言的特点;例如语法类Java、函数借鉴Scheme、原型继承借鉴自Self、正则表达式借鉴于Perl。(DC Javascript:语言精粹)。

首先,每个JS是一门基于原型继承的面向对象的语言。里面数组是对象、函数是对象、“对象”当然还是对象。而且每个对象都有一个internal slot[[prototype]],这才是原型链连接起来的关键。诚然,我们可以为一个对象设置prototype property,但这又怎么样呢,这只是表象;后面暗藏杀机。

好,那我可以用isPrototypeOf()来检验某个对象是不是另一个对象的原型;然而这也是基于[[prototype]]链的。

举个例子:

下面的问题是foo.prototype是不是a的原型呢?!

这要分开来看:一方面a.prototype确实是{ name : "a.prototype"};但是,foo.prototype.isPrototypeOf(a)结果是true.

下面来看一看具体的关系:(使用--->表示不明显的[[prototype]]链,---表示prototype property关系)

Function ---> Function.prototype--->Object.prototype

关于JavaScript 原型链的一点个人理解(关于javascript函数)

Function.prototype <--- foo---foo.prototype ------>Object.prototype 。

另外,Number、Boolean、String等的[[protptype]]仍然是Fuction.prototype对象。Function.prototype对象为“function”,内部不含[[construct]]故而不可做构造函数用;实际上Function.prototype类似:function () {}。“function”类型除了[[prototype]]internal slot外,还有prototype属性。每个函数总是相伴有一个prototype对象:this.prototype = {constructor:this}(一个普通对象)。这个普通对象的[[prototype]]连接到Object.prototype.

那构造函数建立的实例对象的[[prototype]]是Object.prototype吗?

该实例的[[prototype]]是由构造函数的prototype property初始化的,注意不是函数的[[prototype]].所以如果是由Object这个函数构造的对象,那么就确实是.

Object是函数,它的prototype是大名鼎鼎的Object.prototype(有点废话的意思),但是它的[[prototype]]指向Function.prototype.请看下面:

Object----->Function.prototype------>Object.prototype.

如何改变这个[[prototype]]链呢?

可以采用var a = Object.create(obj)的形式,或Object.setPrototypeOf(objA,objB)的形式。我想例子就不用举了,因为关系很简单;况且我只举得出一些蹩脚的例子。没有意义。

最后一个问题,行为委托是基于[[prototype]]链吗?

是的,也是这样。

图解prototype、proto和constructor的三角关系 javascript里的关系又多又乱。作用域链是一种单向的链式关系,还算简单清晰;this机制的调用关系,稍微有些复杂;而关于原型,则是prototype、proto和cons

JS中使用DOM来控制HTML元素 1.getElementsByName():获取name.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`例:pname="pn"hello/ppname="pn"hello/ppname="pn"hello/pscriptfunctiongetName(){varcount=document.getElementsByName("pn");alert(cou

详细谈谈javascript的对象 javascript中有很多对象内容,挑几个感觉用的比较多的讲解。在网上学习一些和看javascript的学习手册。如果要这个手册的可以留言,看到了我就发给你。

标签: 关于javascript函数

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

上一篇:AngularJS 指令详细介绍(angular指令详解)

下一篇:图解prototype、proto和constructor的三角关系(纸嫁衣6攻略全文图解)

  • 消费税的计算方法有什么
  • 企业纳税申报表包括哪些表
  • 税务证需要多少费用
  • 认缴制的注册资本实缴时存哪里
  • 生产车间领用材料,用于产品生产
  • 以前年度损益调整科目怎么用
  • 什么公司不可以上市
  • 报税显示税款入账未到账
  • 代收货款的商品
  • 事业单位补发以后的工资
  • 未投入使用房屋怎么处理
  • 用于不动产的进项税能抵扣吗
  • 出差住宿普通发票进项税可以抵扣吗
  • 全额计提坏账符合的条件
  • 工程施工购买的标示牌怎么开票给甲方
  • 固定资产报废后怎么处理
  • 企业只有收入没有支出是否违规
  • 资源税是否需要计提?
  • 天猫开发票需要确认收货吗?
  • 所得税汇算清缴调整项目
  • 如何选一般纳税人还是小规模纳税人合作?
  • 五证一户什么意思
  • 增值税发票不见了可以重开吗
  • 同一建筑工程签不同合同
  • 小规模季度超了9万怎么报增值税
  • 专票当月未认证怎么处理
  • 增值税简易征收范围
  • 注册资本金认缴制
  • 库管和车间工人哪个好
  • 无法收回的分公司怎么办
  • php初学
  • plugin.exe是什么进程
  • 临时用工怎样做账
  • PHP:mcrypt_ecb()的用法_Mcrypt函数
  • 金融业务增值税税率
  • 企业合并分立
  • 若依前后端分离做的系统
  • 在高地陶恩山脉的滑雪旅行,奥地利巴德加斯坦 (© RooM the Agency/Alamy)
  • php 集成环境
  • jqueryfor
  • 固定资产无形资产计提折旧是当月还是次月
  • 应付票据贴现是负债吗
  • 营改增后自建厂房抵扣
  • 金蝶专业版如何打印凭证
  • 资产负债表递延所得税资产计算公式
  • 奖金如何做账会计分录
  • Keepalived+HAProxy实现MySQL高可用负载均衡的配置
  • 专项附加可以随便填吗
  • 上月计提多了怎么办
  • 未开票的收入如何申报增值税
  • 什么是原始凭证?简述原始凭证审核的内容
  • 合并报表问题
  • 汽车以租代购可靠吗
  • 只有进项要交税吗
  • 费用票可以抵扣多少企业所得税
  • 加油预付卡发票新规定文件
  • 未认证的发票如何进项税转出
  • 租用办公楼的装修协议
  • 分公司独立核算和非独立核算哪个好
  • Windows Server 2008病毒偷改账号的安全隐患
  • linux修改yum
  • win10光驱无法识别
  • linux中添加用户和组的操作
  • win10虚拟机无法安装
  • info.exe是什么病毒
  • fciv.exe
  • win8应用商店怎么卸载
  • 更新win10后扬声器无声音
  • cocos2dx 3.17
  • shell判断文件是否存在且大小不为0
  • shell 循环 for
  • windowsxp命令行窗口怎么打开
  • json python 字段读取
  • javascript中的匿名函数
  • 建筑工程资质挂靠合同
  • 成都市税务局公示名单公布
  • 公司年会抽奖发言
  • 餐饮企业需要缴纳哪些税
  • 中国税务报多少钱
  • 车船税新标准计算办法
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设