位置: 编程技术 - 正文

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

  • 所得税申报表的营业成本包括费用吗
  • 利税总额计算公式利润表怎么计算
  • 固定资产账务处理实操
  • 企业所得税季度申报表A类
  • 广告服务商是什么意思
  • 国有资本及权益客观增减因素
  • 去新成立的公司
  • 专票未认证是什么意思
  • 超过保质期存储时间或变质的食品应该怎样处理
  • 财政补助收入怎么结转
  • 进料料件内销账务处理怎么做?
  • 公司开发票要交多少钱的税?
  • 收购农产品销售会计分录怎么写
  • 2017年的7月1日
  • 增值税专用发票电子版
  • 不动产增值税总结
  • 银行转账取得的收据
  • 承兑汇票属于现金支付吗
  • 房屋装修费是否分摊到地下车位成本
  • 商场赠送购物券是真的吗
  • 如何创建一个空的dataframe
  • 申报专利 费用
  • 银行贷款需要走第三方账户,第三方需要提供身份证
  • 管理费用如何分摊到产品成本
  • 王者荣耀如何进入3D视角
  • win11系统开机密码怎么修改
  • win8电脑系统还原
  • 处理车辆违章送什么证件
  • 如何进入企业年报系统
  • 收到现金股利会引起什么变化
  • 财务指标有哪四类
  • root面具怎么用
  • 工程完工后有质量问题能解除合同吗
  • 扣除发票
  • 哪种审计证据更可靠
  • php取二维数组的一组内容
  • el-table(type=“selection“)多选框两种回显
  • 减免增值税会计处理
  • php常用字符串
  • php连接
  • 小满秒懂百科
  • php判断字符串是否为ip地址
  • mzip命令 控制磁盘驱动器
  • 逐帧flash动画
  • 个人劳务费需交什么税种
  • 公司租车公司
  • 企业直接费
  • 银行账户维护费怎么做账
  • 织梦图片集如何调用
  • 企业支付的一次性就业补助金
  • 金税四期功能
  • 季度销售额不超过30万元如何纳税
  • 银行预留印鉴是啥
  • 外出经营一定要开
  • 非税收入一般缴款书是什么意思
  • 税控盘上报
  • 未开票确认收入账务处理
  • 发工资四舍五入多了几块钱怎么办
  • 股份有限公司向股东借款
  • 食堂计入公务接待费
  • bulk insert formatfile
  • windows缓存写入失败,数据怎么找回
  • 装了linux后windows没有了
  • node.js加密
  • (cocs2dx)二、 利用Eclipse编译apk应用
  • unity3d webgl
  • 简介怎么写
  • ftp远程桌面
  • shell 替换文件中匹配的内容
  • [置顶]JM259194
  • python模拟软件
  • 安卓网络监测
  • unity3d游戏开发笔记本推荐
  • android shareuid
  • javascript中函数的作用域分为全局作用域
  • js原型作用
  • 电子税务局浏览器版本太低
  • 发票在税务系统查不到对方要怎么做
  • 财务跨期报销问题
  • 增值税发票选择确认平台查询不到以开出的进项发票?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设