位置: 编程技术 - 正文

关于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攻略全文图解)

  • 资源税的计税依据含增值税吗
  • 应纳所得税额的税率
  • 增值税和城建税怎么算
  • 印花税权利许可证照免税吗
  • 小规模纳税人可以开什么发票
  • 税收指的是什么
  • 土地增值税计入税金及附加吗
  • 分公司的所得税怎么申报
  • 对公账户卡号是私人账号
  • 个人所得税经营所得申报
  • 进口增值税可以抵税吗
  • 固定资产贷款资料清单
  • 上期留抵税额如何计算
  • 税务年检流程
  • 接收商业承兑汇票需要到银行办手术吗
  • 付款单中未全付款怎么办
  • 生产企业原材料的订购与运输论文
  • 环境保护税税率
  • 发票复印件能报账吗
  • 运输费发票备注栏填不下
  • 无偿赠与钱要交税吗
  • 发票章盖住备注烂备注的日期,看不清
  • 居民企业清算企业所得税
  • 农村的生产经营是什么
  • 购入土地使用权增值税税率
  • 同期比较百分比如何计算
  • 资产负债表资产总额在哪
  • 印花税的购销合同改成买卖合同了吗?
  • 实发工资需扣除所得税吗
  • 结转净利润到利润分配
  • 不附追索权的票据包括
  • 会计凭证丢失补违规么
  • 房地产开发企业增值税怎么算
  • flex的几个常用布局
  • 怎么算土地增值税
  • thinkphp框架入门
  • vue图片放在哪里
  • 前端试题大全及答案
  • 工程前期费用是什么意思
  • 待抵扣进项税额的账务处理
  • 红字发票信息表怎么打印出来
  • 以美元报关是否要交税
  • 其他收益用什么明细账
  • 部分红冲的发票无法勾选怎么办
  • 发放股票股利的意义包括
  • 中小微企业有哪些企业
  • 凭证摘要写错了已结账了怎么办
  • 特殊销售方式下销售额的确定
  • 计提社保公积金的账务处理
  • 加油的增值税发票几个点
  • 哪些账户期末结账后一定无余额
  • 购买农产品进行销售要交税吗
  • 公司发放给员工的福利又要回
  • 账面银行存款余额与实际余额不符
  • 独立董事需要入股吗
  • 长期股权投资损益调整怎么回事
  • sql server语句查询
  • mysql视图语句
  • netbeui怎么安装
  • 教你怎么制作麻雀胶
  • ubuntu安装office2019
  • xp清理系统的命令
  • ubuntu安装chrom
  • mac电脑apple id
  • win7 开机动画
  • win10周年更新版是什么意思
  • win7 如何截屏
  • windows隐藏分区
  • win8 开始
  • javascriptz
  • ExtJS4利根据登录后不同的角色分配不同的树形菜单
  • jquery使用教程
  • toggle button什么作用
  • jquery是怎样实现链式调用的?
  • 杭州市国税稽查三科科长
  • 季度税额怎么算
  • 浙江纳税百强2020
  • 餐饮发票真伪查询系统
  • 广东省地方税务局电子办税服务厅
  • 季度申报忘了报怎么办
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设