位置: 编程技术 - 正文

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

  • 进项税转出从待认证到月末结转的会计分录是
  • 不用交增值税还用填附加税申报表吗
  • 应付职工薪酬明细账模板
  • 研发辅助账科目设置
  • 金税开票系统怎么导出发票明细
  • 所得税申报时成本数据填错怎么办
  • 广告发布需要什么手续
  • 事业单位下属企业员工转事业编
  • 购买空调算什么费用
  • 一般纳税人计提增值税账务处理
  • 房地产企业营销设施建造费包括哪些
  • 股票盈亏怎么计算app
  • 没有ca证书怎么连接wifi加密设备
  • 总公司收回未分配利润如何入账?
  • 企业所得税为什么那么高
  • 增值税农产品扣除率
  • 货物进出口代理公司
  • 虚开发票的进项税额转出如何做分录?
  • 淘宝电商会计交税怎么交?
  • 未认证进项税额转出
  • 残疾人保障金中上年在职职工人数怎么计算
  • 2019一般纳税人租赁费税率
  • 建筑公司开劳务票税点是多少
  • 劳务所得个税税率表
  • 企业整体资产转让增值税
  • 预提费用的会计分录2018
  • 压缩文件夹发给别人他能看到我桌面上的文件吗
  • vue项目如何搭建
  • 哪些情形需要办理外债审核登记
  • 花卉盆景苗木
  • 公司总经理报销找谁签字
  • 还款本息和本金哪个划算
  • 银行退回手续费的账务处理
  • 房地产评估计费
  • 评估价值时点依据什么
  • 单位代缴住房公积金分录
  • 员工报销的费用
  • 年终结算啥意思
  • 没有收入的情况下可以填成本吗
  • php 时间格式转换
  • php的session
  • 服务费发票怎么入账
  • window cuda
  • phpcms怎么用
  • 水利建设基金计算公式
  • 事业单位一级项目和二级项目区别
  • 以固定资产增资流程是怎样操作
  • 固定资产折旧怎么做会计科目
  • 返回个人所得税的分录
  • 公司银行开户的经办人有无风险
  • 个体户开发票超过定额是如何交税?
  • 企业注销了,存钱怎么办
  • 融资租赁确认的具体条件
  • 收到失业保险稳岗补贴怎么做会计分录
  • 工会经费到底怎么算
  • 我国耕地占用税使用的税率为
  • 商场活动经费预算
  • 公司注销应收账款如何转让给第三方
  • 青苗赔偿管理办法
  • 企业的职工福利费
  • 银行汇票哪个科目
  • 未分配利润可以转盈余公积吗
  • linux 挂载img
  • linuxmail命令
  • win7多用户怎么删除
  • 在linux系统中,用来存放系统所需要的
  • win8.1 安装ie10
  • windows8的ie浏览器在哪
  • cocos游戏开发教程
  • 鼠标焦点离开触发查询
  • shell delete
  • 一道关于医用口罩的数学题初二
  • jQuery继承extend用法详解
  • python 网络爬虫库
  • python读写docx
  • 演艺明星
  • 退休军人免门票吗
  • 车险包括车船费吗
  • 拆迁户契税减免政策有时间限制
  • 电费增值税专用发票如何抵税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设