位置: 编程技术 - 正文

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

  • 对外投资应由
  • 注册税务师的报名条件、时间及考试
  • 电子发票怎么开具
  • 微信收入算现金流出吗
  • 城镇土地使用税减免税政策
  • 招待费汇算清缴扣除比例
  • 飞机票火车票汽车票抵扣进项税
  • 外包和离岸外包一样吗
  • 企业利润表的主要内容
  • 高危行业企业安全费用提取
  • 售后回租涉税
  • 期初固定资产净值在资产负债表中的哪里
  • 未交税金期末数
  • 税控盘抵增值税表怎么填
  • 土地增值税允许扣除的评估价
  • 吸收合并具体分录
  • 增长率应该要如何计算呢?
  • 服务类进项
  • 汇算清缴账务
  • 企业转产是什么意思
  • 收取违约金如何入账
  • 代理公司可以开服务费发票吗
  • win10怎么自定义开机音乐
  • php数字转换大写
  • 命令提示符打错了怎么修改
  • php字符串函数大全
  • php二维数组的遍历
  • php目录操作
  • 个人住房5年后买卖如何交税?
  • 商贸宝红冲和红字反冲
  • 特许权使用费的增值税税率是多少
  • 税控系统的维护包括哪些内容
  • elementui的upload组件详解
  • 提示框架
  • 无形资产有进项税吗
  • php随机ip访问
  • 小型微利企业的认定标准2023年
  • 诉讼费发票丢失可以补开吗
  • 开票系统在哪
  • 管理费用怎么入账
  • 旅游景点的门票能做费用吗
  • mysql使用技巧
  • 企业印花税怎么入账
  • 公司代个人缴纳社保,但不发工资和交税
  • 国税实名认证手机号如何解绑
  • 中华人民共和国企业所得税年度纳税申报表
  • 汇算清缴后发现成本多做了
  • 电汇和票汇
  • datatable怎么用
  • db2数据库管理的工具
  • mysql的主从
  • 旅行社增值税2020
  • 交通运输业安全经费提取的会计处理
  • 员工借款未还财务有责任吗
  • 小规模纳税人没有进项发票违法吗
  • 场地租赁都需要交什么税
  • 收到没有填税号的信息
  • 配置零部件
  • 企业办增项怎样办理
  • 增值税科目设置及科目号
  • sql server的go
  • win10预览版21390
  • redhat配置bond
  • adb.exe是什么程序
  • 解决磁盘被写保护的方法
  • 苹果系统装win8
  • ubuntu系统怎么进入命令行
  • win7系统在电源选项找不到屏幕亮度
  • win8 怎么样
  • win10系统wifi信号断断续续
  • linux tcptraceroute
  • kill命令用法
  • 学会这8个技巧让你做出的菜味道更好
  • dos批处理高级教程合编.pdf
  • 归档 oracle
  • python灰度变换
  • python魔法方法详解
  • 安卓通知栏管理工具
  • 风险研判能力不足的原因
  • 国税总局编制这次怎么调整
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设