位置: 编程技术 - 正文

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

  • 企业所得税视同销售的会计处理是?
  • 广告费业务宣传费扣除标准
  • 偷税漏税逃税是什么意思
  • 钱已付票未收到分录怎么做
  • 公司单位性质怎样填写
  • 行政事业单位国有资产处置管理办法
  • 有两种税率的如何填申报表
  • 承兑差额怎么做账
  • 3%减按2%征收是哪个税目
  • 购入原材料退货的记账凭证怎么写
  • 怎么结转销项税额
  • 个人收到的国外短信
  • 当月发票入库核销怎么算
  • 应收账款无法收回分录
  • 小规模没有进项可以开发票吗
  • 怎么辨认专用发票真伪
  • 老项目简易征收可以用进项抵扣吗
  • 收购发票盖章盖谁的
  • 发票冲红还需要作废吗
  • 外币结算方式有哪几种
  • 收回固定资产残值
  • 按适用税率征税货物及劳务销售额
  • 个人独资企业需要缴纳哪些税种
  • 公账转私账可以撤销吗
  • 辅助生产费用的核算
  • 查账征收企业所得税季报怎么填
  • 资产负债表与现金流量表的关系
  • win10提示病毒防护已过期
  • 交易性金融资产包括哪些项目
  • linux命令top作用
  • 政策性搬迁补偿收入如何财税处理
  • php字符串定义的三种方式
  • 软件技术开发合同
  • 艾叶泡脚的功效与作用及禁忌
  • 海康工业相机彩色改黑白设置
  • 固定资产入账流程图
  • 应收账款清查采用实地盘点法
  • 公司注销后虚开能查吗
  • 小型微利企业税收优惠2023
  • 微信小程序开发零基础入门
  • vue sse
  • 毕业论文笔记怎么写
  • php类的作用
  • 销售方开具的红字信息表
  • 企业转让时应收账款如何处理
  • 工程公司项目管理部管理制度
  • wordpress全站伪静态
  • 企业发行债券的交易费用计入
  • 报税是按照实际收入还是开票
  • 小规模纳税人的个人所得税怎么算
  • 税控服务费属于增值税减免费?
  • 实际购入成本包括增值税吗
  • 期末余额就是本年累计吗
  • 固定资产到期后继续使用
  • 出售转让固定资产的账务处理
  • 加计扣除的会计要素
  • 经济补偿金如何做账
  • 铁路运费印花税怎么算
  • 关于小微企业免征印花税的规定
  • 支出未取得发票
  • 每个月结转损益会计分录
  • 外埠存款账务处理方法
  • 库存商品属于什么科目
  • 账簿设计原则的主要内容
  • 雨林木风 u盘
  • win7系统安全在哪
  • 多屏协同苹果系统有吗
  • win7系统的一键还原怎么关闭
  • 苹果预计10.1-15号到能准确吗
  • win8运行速度慢怎么办
  • linux用户登录
  • wire软件下载
  • py常用函数
  • android工程目录
  • 面向对象设计六大原则
  • 带酒回国需要申报吗
  • 佛山市地税局办公室主任
  • 青岛网上办税服务厅登录
  • 社保在线审核
  • 印花税核算有两种情况,是如何处理的?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设