当前位置: 首页 > news >正文

1网站建设/企业网站建设费用

1网站建设,企业网站建设费用,淘客网站系统免费源码,邯郸网站建设联系电话文章目录函数的prototype显示原型与隐式原型原型链构造函数/原型/实例对象的关系函数的prototype 函数的prototype属性 每个函数都有一个prototype属性, 它默认指向一个Object空对象(即称为: 原型对象)原型对象中有一个属性constructor, 它指向函数对象 也就是说函数与函数的…

文章目录

  • 函数的prototype
  • 显示原型与隐式原型
  • 原型链
    • 构造函数/原型/实例对象的关系

函数的prototype

  1. 函数的prototype属性
  • 每个函数都有一个prototype属性, 它默认指向一个Object空对象(即称为: 原型对象)
  • 原型对象中有一个属性constructor, 它指向函数对象
    在这里插入图片描述

也就是说函数与函数的原型对象有一个互相引用的关系

  1. 给原型对象添加属性(一般都是方法)
  • 作用: 函数的所有实例对象自动拥有原型中的属性(方法)

证明:

<script type="text/javascript">// 每个函数都有一个prototype属性, 它默认指向一个Object空对象(即称为: 原型对象)console.log(Date.prototype, typeof Date.prototype)function Fun () {//alt + shift +r(重命名rename)}console.log(Fun.prototype)  // 默认指向一个Object空对象(没有我们的属性)// 原型对象中有一个属性constructor, 它指向函数对象console.log(Date.prototype.constructor===Date)console.log(Fun.prototype.constructor===Fun)//给原型对象添加属性(一般是方法) ===>实例对象可以访问Fun.prototype.test = function () {console.log('test()')}var fun = new Fun()fun.test()
</script>

显示原型与隐式原型

  1. 每个函数function都有一个prototype,即显式原型(属性)
  2. 每个实例对象都有一个__proto__,可称为隐式原型(属性)
  3. 对象的隐式原型的值为其对应构造函数的显式原型的值
  4. 内存结构(图)
  5. 总结:
  • 函数的prototype属性: 在定义函数时自动添加的, 默认值是一个空Object对象
  • 对象的__proto__属性: 创建对象时自动添加的, 默认值为构造函数的prototype属性值
  • 程序员能直接操作显式原型, 但不能直接操作隐式原型(ES6之前)

例如:
在这里插入图片描述

<script type="text/javascript">//定义构造函数function Fn() {   // 内部语句: this.prototype = {}}// 1. 每个函数function都有一个prototype,即显式原型属性, 默认指向一个空的Object对象console.log(Fn.prototype)// 2. 每个实例对象都有一个__proto__,可称为隐式原型//创建实例对象var fn = new Fn()  // 内部语句: this.__proto__ = Fn.prototypeconsole.log(fn.__proto__)// 3. 对象的隐式原型的值为其对应构造函数的显式原型的值console.log(Fn.prototype===fn.__proto__) // true//给原型添加方法Fn.prototype.test = function () {console.log('test()')}//通过实例调用原型的方法fn.test()
</script>

原型链

原型链

  • 访问一个对象的属性时,
    • 先在自身属性中查找,找到返回
    • 如果没有, 再沿着__proto__这条链向上查找, 找到返回
    • 如果最终没找到, 返回undefined
  • 别名: 隐式原型链
  • 作用: 查找对象的属性(方法)

在这里插入图片描述
注意:

   /*1. 函数的显示原型指向的对象默认是空Object实例对象(但Object不满足)*/console.log(Fn.prototype instanceof Object) // trueconsole.log(Object.prototype instanceof Object) // falseconsole.log(Function.prototype instanceof Object) // true/*2. 所有函数都是Function的实例(包含Function)*/console.log(Function.__proto__===Function.prototype)/*3. Object的原型对象是原型链尽头*/console.log(Object.prototype.__proto__) // null

构造函数/原型/实例对象的关系

例一:

var o1 = new Object();
var o2 = {};

在这里插入图片描述

例二:

function Foo(){  }

在这里插入图片描述
这张图有几个注意点:

我们知道所有的函数都是Function的实例对象,这其中甚至包括Function自身
这也就解释了:

  • Foo的构造函数的__proto__指向Function的原型对象,因为实例对象的__proto__永远指向构造函数的prototype。
  • Function自己也是Function的实例对象,既然是对象那么就有__proto__属性,根据实例对象的__proto__永远指向构造函数的prototype,我们可以知道Function的__proto__指向Function的原型对象。
  • Object的构造函数是Function的实例对象,同样也根据实例对象的__proto__永远指向构造函数的prototype,所以Object的构造函数的__proto__指向Function的原型对象。

不建议用父子级的概念去理解原型

http://www.lbrq.cn/news/731125.html

相关文章:

  • 建设部职称网站/谷歌seo零基础教程
  • 佛山出格建站/百度seo排名点击器
  • 购物网站开发需求分析/在线客服系统平台有哪些
  • 临朐网站建设价格/在百度上怎么注册网站
  • 高端网站建设企业/网站联盟推广
  • 东莞网站建设牛魔网a/广东省最新疫情
  • 河北软件开发网站建设/朋友圈广告
  • 成都网站建设公司电话/市场调查报告
  • 品牌vi设计理念/谷歌seo排名公司
  • 蓬莱做网站价格/seo中介平台
  • 荔湾做网站的公/今日要闻新闻
  • 做p2p理财网站/代写平台在哪找
  • 众筹平台网站搭建/12月10日新闻
  • 中象做网站怎么样/广告推广
  • 中国供应商网app下载/网络优化排名培训
  • 电商类网站建设需要多少钱/丁香人才网官方网站
  • 潍坊公司做网站/长沙seo霜天
  • 老河口网站设计/在百度怎么免费发布广告
  • 网站标题切换/百度指数购买
  • 微信怎么自己创建公众号/重庆seo海洋qq
  • 微信网站建设和维护/广州网站优化公司排名
  • 晋中建设集团有限公司网站/windows优化大师破解版
  • 漯河哪里做网站/2022近期重大新闻事件10条
  • 毕业设计做网站应该学什么/2023疫情第三波爆发时间
  • 怎么做qq代挂网站/白度指数
  • 怎样自己制作网站做情感顾问/网络营销的模式有哪些?
  • 青岛集团网站建设/seo优质友链购买
  • 河南建设工程一体化/百度代做seo排名
  • 网站不符合个人备案性质/百度推广关键词排名在哪看
  • 核酸检测公司上市/seo技术培训海南
  • 力扣(在排序数组中查找元素的第一个和最后一个位置)
  • Linux驱动开发笔记(六)——pinctrl GPIO
  • 【PSINS工具箱】MATLAB例程,二维平面上的组合导航,EKF融合速度、位置和IMU数据,4维观测量
  • postman接口自动化测试
  • 灵活使用UE5 Modeling中的UV编辑功能
  • Altium Designer 22使用笔记(8)---PCB电气约束设置