位置: 编程技术 - 正文

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

  • 什么是特别纳税人
  • 个人所得税如何查询工资
  • 什么是离岛免税如何购买有哪些特殊规定
  • 工程款给付协议
  • 审核记账对账结果怎么写
  • 小规模纳税人开普票免税
  • 简易征收 抵扣进项
  • 受托代销商品款是什么科目
  • 小企业会计准则会计科目表
  • 农村电网维护费会计分录
  • 独立账户负债核算内容
  • 固定资产清理营业外支出汇算清缴需要调增吗
  • 委托加工设备
  • 买的厨房用品算什么费用
  • 支付的管理费用可以抵税吗
  • 贷款公司收取服务费是诈骗吗
  • 应付未付的款项如何税务处理
  • 费用类发票怎么做账
  • 采购退货退款怎么做账
  • 股权转让未分配利润如何做账
  • 未认证进项税额转出
  • 法人名下两家公司,客户买货可以用另外一个公司开票吗
  • 代征税款手续费规定
  • 差旅费税务要求比例
  • 有留抵怎么交增值税
  • 企业专票抵税
  • xp系统怎么取消用户登录
  • 企业的营业外收入要交增值税吗
  • 个体户年报如何公示
  • 预计负债属于什么类
  • 跨年的定额发票可以用吗
  • php中??
  • php实现文件下载功能
  • icm是什么文件
  • 无形资产投资后退出
  • 百家论坛是正规期刊吗
  • 个人买车缴纳车船税吗
  • 保洁劳务派遣合同
  • php如何继承多个类
  • php 命名空间 通俗易懂
  • thinkphp i方法
  • yolov5改进点
  • 图像分类实战
  • opencv图像识别特定形状
  • 劳务费800以上扣税标准
  • 母公司为子公司提供担保是利好吗
  • 如何利用税收经济效应实现税收的宏观调控目标
  • 农产品普通发票进项税抵扣
  • 负数发票开票条件?
  • 企业利润分配的内容
  • 为什么购买办公用品
  • 物流公司车辆过户要3万
  • 带有折扣的增值税专用发票图片
  • 取得虚开
  • 换工作后个税app单位会自动更改吗
  • 小规模一直零申报有什么影响
  • 支付宝如何打印付款凭证
  • 无形资产的摊销方法
  • 如何调优产业结构
  • mysql 临时表
  • 获得sql数据库信息的方法
  • 卸载微信后重新登录微信怎么恢复之前的数据
  • linux系统chmod用法
  • w8系统怎么连接投影仪
  • linux xim
  • linux中软链接和硬链接的区别
  • wind10手机版
  • 80端口被system 占用解决方法
  • jquery操作html代码
  • cocos2dx 4.0
  • unityai寻路
  • ogre 引擎
  • dos判断变量是否为空
  • android 字体设置
  • unity 3d ui
  • 详细分析使用AngularJS编程中提交表单的方式
  • jquery返回顶部
  • 个体工商户定期定额核定
  • 中国一年能收多少税
  • 重庆公交司机收入
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设