深入解析JavaScript的原生原型

🧑‍🎓 个人主页:《爱蹦跶的大A阿》

🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》

​ 

✨ 前言

        在JavaScript中,除了自定义对象,还存在很多由JavaScript语言本身提供的原生对象。这些原生对象同样基于原型继承机制,拥有自己的原型。

        理解原生对象的原型非常重要,可以让我们正确使用这些内置对象,也有助于进一步理解JavaScript的原型继承系统。

        本文将详细解析原生对象的原型结构,揭开一些常见原生对象原型的神秘面纱。

✨ 正文

一、Object的原型

Object是所有对象的父对象,其原型就是原型链的终点:

Object.prototype.__proto__ === null; // true

Object原型上定义了所有对象共享的方法,比如toString、valueOf等。

二、Function的原型

Function是所有函数的构造函数,其原型链是:

Function.prototype -> Object.prototype -> null

 Function原型上定义了apply、call、bind等方法。

三、Array的原型

数组对象Array的原型链是:

Array.prototype -> Object.prototype -> null

Array原型上定义了所有数组共享的方法,比如push、pop等。

四、RegExp的原型

正则表达式对象RegExp的原型链是:

RegExp.prototype -> Object.prototype -> null

 RegExp原型上定义了正则对象的matcher等方法。

五、内置函数的原型

一些内置函数如decodeURI、isNaN等它们的原型是:

decodeURI.prototype -> Function.prototype -> Object.prototype -> null

六、普通对象的原型

普通对象使用Object构造函数创建,其原型链是:

{}.__proto__ -> Object.prototype -> null

 

✨ 结语

        学习原生对象的原型关系,有助于我们在日常开发中正确理解和使用这些JavaScript内置对象,避免一些常见陷阱。

        原生对象的原型也是JavaScript作为一门原型继承语言的重要组成部分。充分理解原型系统是掌握JavaScript语言的关键。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/413457.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker之nacos的安装和使用

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是君易--鑨,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的博客专栏《Docker之Dockerfile构建镜像》。🎯&…

肯尼斯·里科《C和指针》第6章 指针(1)

作为补充资料来学习吧。 6.1 内存和地址 前面提到,我们可以把计算机的内存看作一条长街上的一排房屋。每座房子都可以容纳数据,并通过一个房号来标识。这个比喻颇为有用,但也存在局限性。计算机的内存由数以亿万计的位(bit)组成,…

[Android] Android架构体系(2)

文章目录 Bionic精简对系统调用的支持:不支持 System V IPC:有限的 Pthread 功能:有限支持C:不再支持本地化和/或宽字符:Bionic新增的特性系统属性硬编码写死的UID/GID内置了DNS解析硬编码写死的服务和协议 硬件抽象层Linux内核匿名共享内存(ASHMem)Binder-BinderLoggerION 内存…

【经典算法】有趣的算法之---粒子群算法梳理

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 粒子群算法 粒子群算法(Particle Swarm Optimization,PSO)是一种用于解决优化问题的元启发式算法。它通过模拟鸟群或…

什么是车载信息娱乐系统和集成驾驶舱

什么是车载信息娱乐系统(IVI)? “车载信息娱乐(IVI)”通过向驾驶员和乘客提供信息和娱乐,为驾驶提供便利和舒适。为了理解这个概念,有必要知道“信息娱乐”的含义。“信息娱乐”是这个市场中使用的一个词,它结合了“信息”和“娱乐”两个词…

编译FFmpeg4.3.1 、x264并移植到Android

1、前言 FFmpeg 既是一款音视频编解码工具,同时也是一组音视频编解码开发套件。 2、准备工作 系统:LinuxNDK:android-ndk-r21b-linux-x86_64.zipFFmpeg:ffmpeg-snapshot.tar.bz2x264:x264 3、下载NDK 在linux环境中…

存内计算技术打破常规算力局限性

说明: 本文撰写人:三掌柜666 由三掌柜666原创首发:https://blog.csdn.net/CC1991_/article/details/135623056 文章目录 前言关于存内计算1、常规算力局限性2、存内计算诞生记3、存内计算核心 存内计算芯片研发历程及商业化1、存内计算芯片研…

Unix时间戳

时间戳,相信很多相关专业的人,计算机软件电子等等都会听过。由于最早是由Unix系统使用所以又叫Unix时间戳。 Unix 时间戳(Unix Timestamp)定义为从UTC(世界协调时)/GMT(格林尼治时)…

【Java】SpringBoot快速整合Redis

什么是Redis? 文末有源码gitee地址 【面试】浅学Redis_redis 广播-CSDN博客 Redis是一种高性能开源的基于内存的,采用键值对存储的非关系型数据库,它支持多种数据结构,包括字符串、哈希表、列表、集合、有序集合等。Redis的特点之…

机器学习--Matplotlib

机器学习–Matplotlib Matplotlib 是专门用于开发2D图表(包括3D图表)以渐进、交互式方式实现数据可视化 简单的Matplotlib画图 — 以折线图为例 matplotlib.pyplot模块 matplotlib.pytplot包含了一系列类似于matlab的画图函数。 import matplotlib.pyplot as plt图形绘制流…

STM32入门教程-2023版【4-1】OLED调试工具

关注 点赞 不错过精彩内容 大家好,我是硬核王同学,最近在做免费的嵌入式知识分享,帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作! 一、概述 在这一节先提前介绍一下,在以后的教程中我们会经常用到这个显示屏&#xff0…

HCIA的访问控制列表ACL

ACL -----access control-list 允许/拒绝 ACL作用: 1.实现访问控制 2.定义感兴趣流量 ACL分类: 标准ACL 2000-2999(只关注源IP地址,使用时应该尽量靠近目标) 扩展ACL 3000-3999:写ACL不能写在源上&…