原型链的顶端是什么

2023-10-28 04:20
文章标签 顶端 原型

本文主要是介绍原型链的顶端是什么,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

js中到处是对象,对象之间往往会通过__proto__连接在一起,这种链接的现象被称为原型链。极少数的对象会滑原型,比如:
Object.create(null)生生的对象里面没有任何属性,非常“空”,我们称它为字典,这种字典对象适合存放数据,不必担心原型带来的副作用。
对象生的有三种方式,一种是上面的Object.create(),一中是字面量(var a = {}),另外一种是通过构造函数(var person = new Person())。一般的对象它们的原型链的顶点是Object.prototype。通过构造函数形式产生的对象,它们的__proto__会自动关联构造函数的prototype。

而构造函数的prototype是什么,它的原型链最终又指向了哪里呢?这个问题的答案是:函数的prototype是一个在函数声明阶段就会产生的对象(prototype只有函数才会有),这个对象只有两个属性constructor和__proto__,其中__proto__指向了我们原型链的顶点Object.prototype。constructor指向函数本身,里面包括了函数一些基本描述信息比如函数名称,参数个数等。

有意思的是constructor里面即有__proto__又有prototype,他们之间有什么关系和差别呢?首先prototype描述的是原型对象,它是一个实实在在的对象,__proto__是用来描述对象间的关联关系的。最终会指向一个prototype原型。函数由Function衍生而来,所以函数的__proto__指向的是Function.prototype。Function是由Object衍生而来,有意思的事情又发生了,Function的__proto__却并不指向Object.prototype,而是指向Function.prototype这个标准的内置对象。Function.prototype.__proto__才是指向我们的原型链顶点Object.prototype

Function.__proto__ === Function.prototype // true

在这里插入图片描述
在函数当中,Function.proto === Function.prototype

这篇关于原型链的顶端是什么的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/290665

相关文章

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

PMP–一、二、三模–分类–14.敏捷–技巧–原型MVP

文章目录 技巧一模14.敏捷--原型法--项目生命周期--迭代型生命周期,通过连续的原型或概念验证来改进产品或成果。每个新的原型都能带来新的干系人新的反馈和团队见解。题目中明确提到需要反馈,因此原型法比较好用。23、 [单选] 一个敏捷团队的任务是开发一款机器人。项目经理希望确保在机器人被实际建造之前,团队能够收到关于需求的早期反馈并相应地调整设计。项目经理应该使用以下哪一项来实现这个目标?

Axure元件库Ant Design中后台原型模板:提升设计与开发效率的利器

企业对于中后台产品的设计与开发需求日益增长。为了提升用户体验和开发效率,设计者和开发者们不断寻求更加高效、统一的解决方案。Ant Design,作为阿里巴巴开源的一套企业级UI设计语言和React组件库,凭借其丰富的组件和统一的设计风格,已成为众多项目的首选。而在Axure中使用Ant Design元件库,更是为中后台产品的原型设计带来了极大的便利。 Ant Design简介 Ant D

《GOF设计模式》—原型(Prototype)—Delphi源码示例:原型接口

 示例:原型接口 说明: (1)、定义 用原型实例指定要创建对象的种类,并且通过拷贝这些原型实例创建新的同类对象。 (2)、结构 原型 Prototype:抽象原型,声明一个克隆自身的接口。 ConcretePrototype:具体原型,实现一个克隆自身的操作。 客户端 Client:让一个原型克隆自身从而创建一个新的对象。 代码: unit uProtot

《GOF设计模式》—原型(Prototype)—Delphi源码示例:浅拷贝和深拷贝

 示例:浅拷贝和深拷贝 说明: Prototype模式最困难的部分在于正确实现Clone操作。例如,当所考虑的类已经存在时就难以新增Clone操作。当类内部包括一些不支持拷贝或有循环引用的对象时,实现克隆可能会很困难。 大多数语言都对克隆对象提供了一些支持。例如,Smalltalk提供了一个copy的实现,它被所有Object的子类所继承。C++提供了一个拷贝构造器。但这些措施并不

【办公效率】Axure会议室预订小程序原型图,含PRD需求文档和竞品分析

作品说明 作品页数:共50+页 兼容版本:Axure RP 8/9/10 应用领域:中小型企业的会议室在线预订 作品申明:页面内容仅用于功能演示,无实际功能 作品特色 本作品为会议室预订小程序原型图,定位于拥有中大型组织架构的企业、办公楼、园区等群体,为其提供简易化的线上会议室管理的服务。 本作品从业务分析、竞品分析、用例图、原型设计,到需求清单,依照(敏捷开发)标准实战流程输出一套

Axure健康助理小程序原型图70+页,医疗类高保真高交互模板

作品概况 页面数量:共 70+ 页 源文件格式:限 Axure RP 9/10,非app软件无源码 适用领域:医疗健康、健康助理 作品特色 本作品为健康助理小程序的Axure原型设计图,属于医疗健康项目,设计规范内容清晰,高保真高交互,欢迎想了解医疗健康行业的同学观摩学习,希望对你有所帮助。 该产品的定位属于第三方互联网医疗服务平台,致力于为用户提供客观可信赖的医疗信息服务。产品未来所提供

JS设计模式之“语言之魂” - 原型模式

前言 当我们学习JavaScript的时候,经常会听到原型(prototype)、原型链(prototype chain)和原型模式(prototype pattern)这些概念,它们之间有什么关联呢?怎么样才能使用好原型模式呢? 一. “语言之魂” - 原型模式 概念 原型模式是JavaScript语言的核心机制之一,是JavaScript中最基本的设计模式,因此被称为“

原型模式,简化多次创建相同的内容

原型模式的定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 UML图: C++代码: // filename: prototype.h // author: Qinglong.mark.He #include <iostream> #include < string > class  Prototype { protected :     std:

HTML5培训第二节课笔记(事件,原型,JSON)

HTML5培训第二节课笔记 一.事件 1. 一般事件方式: <button type="button" class="mui-btnmui-btn-blue" id="mybutton">按钮</button> function test1(){         alert("aaa"); }   oinput.οnclick=test1; //结果:弹出aaa   2.传参方