怎么理解JavaScript原型、原型链

2024-04-29 07:12
文章标签 原型 java script 理解 怎么

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

原型

JavaScript被描述为一种基于原型的语言,也就是每一个对象都拥有一个原型对象。

当我们访问一个对象的属性时,它不仅仅该改对象上查找,还会到这个对象的原型上查找,甚至是到这个对象的原型的原型上查找,这样一层一层向上查找,直到找到匹配的属性或者是到达原型链的顶端。

这些属性和方法是定义在Object的构造函数上的prototype属性上。而并不是实例对象本身。

比如:函数可以有属性,每一个函数都有一个特殊的属性叫做原型prototype,这个原型prototype是一个对象,也就是原型对象。

原型对象上自带一个属性constructor,这个属性指向函数。

原型链

原型对象也可能拥有原型,并且从中集成方法和属性,一层一层、以此类推。这种关系就是原型链,这就是为什么任何一个对象会拥有定义在其他对象中的属性和方法的原因。

在对象实例和它们的构造函数之间建立起一个链接,通过_proto_属性访问原型对象的原型对象,prototype属性访问到实例的构造函数。

总结:

  1. 一切对象都是集成于Object对象,Object对象直接直接继承根源对象null
  2. 一切函数对象,都是继承于Function对象
  3. Object对象直接继承于Function对象
  4. Function对象的__proto__会指向自己的原型对象,最终还是继承于Object对象。

这就是关于原型和原型链的笔记,希望对你有所帮助!

这篇关于怎么理解JavaScript原型、原型链的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

怎么把学浪课程视频下载到相册

在这个快节奏的学习时代,每一刻的知识获取都显得至关重要。想象一下,在浩瀚如海的学浪app中,你已经找到了那些能够点亮智慧的课程视频,它们不仅充满了启发,还是你求学旅途中的宝贵资源。但是,在网络不稳定或者想要在没有网络的环境下复习时,你是否觉得束手无策?如果我告诉你,有一种方法可以轻松地将这些课程视频永久保存到你的相册里,让知识随时随地伴随着你,这会是一件多么令人兴奋的事情! 今天,就让我们一起探

【Java】:向上转型、向下转型和ClassCastException异常

目录 先用一个生动形象的例子来解释向上转型和向下转型 向上转型(Upcasting) 向下转型(Downcasting) 向上转型 概念 例子 发生向上转型的情况 1.子类对象赋值给父类引用 2.方法参数传递 3.返回值 向下转型 概念 注意事项 例子 ClassCastException异常 概念 例子 先用一个生动形象的例子来解释向上转型和向

Spring Boot 集成 sa-token 实践教程

Spring Boot 集成 sa-token 实践教程 sa-token 是一个轻量级且功能强大的权限认证框架,它基于Java语言,专为Java开发者设计,以简化权限管理的复杂性。在Spring Boot项目中集成sa-token,可以快速实现会话管理、权限控制等功能。本文将通过教程式写作,带领读者一步步实现Spring Boot与sa-token的集成。 环境准备 JDK 1.8

再学Java基础——深拷贝和浅拷贝

在Java中,深拷贝(Deep Copy)和浅拷贝(Shallow Copy)的主要区别在于它们处理对象内部引用字段的方式不同。 浅拷贝(Shallow Copy): 浅拷贝会创建一个新对象,并将原始对象的字段值复制到新对象中。但是,如果字段是引用类型(如另一个对象或数组),则浅拷贝会复制引用本身,而不是引用的对象。因此,原始对象及其浅拷贝将引用同一个对象。   在Java中,使用Object

计算机服务器中了360后缀勒索病毒怎么解密,360后缀勒索病毒恢复

计算机网络技术的不断发展与应用,为企业的生产运营提供了极大便利,大大提高了企业的办公效率,为企业的生产运营注入了新的动力,但网络是一把双刃剑,在为企业提供便利的同时,也为企业的数据安全带来严重威胁,近日,云天数据恢复中心接到多家企业的求助,企业的计算机服务器遭到了360后缀勒索病毒攻击,导致企业计算机服务器系统瘫痪,无法正常工作,严重影响企业的正常业务开展。 360后缀勒索病毒是近几年较为流行的

2024OD机试卷-密码解密 (java\python\c++)

题目:密码解密 题目描述 给定一段“密文”字符串 s,其中字符都是经过“密码本”映射的,现需要将“密文”解密并输出。 映射的规则(‘a’ ~ ‘i’)分别用(‘1’ ~ ‘9’)表示;(‘j’ ~ ‘z’)分别用(“10*” ~ “26*”)表示。 约束:映射始终唯一。 输入描述 “密文”字符串 输出描述 明文字符串 用例1 用例 输入 201920* 输出 tst 用例2 j

java线程池源码解析:ThreadPoolExecutor源码,execute方法、addWorker方法解析

1.  概述 线程池 的作用不用太说了,线程池会按照一定的规则,创建和维护一定数量的线程。这些线程可以被循环利用,来处理用户提交的任务。对比不同线程池的使用方式,节省了频繁的创建和销毁线程带来的性能开销。 2.  概念理解 2.1 工作线程(worker) 指的是当先线程池用于处理任务的worker对象,每个worker对象内部持有一个thread对象。 2.2 任务 调用方,要执行的

Linux重定向及缓冲区理解

重定向:         在上一期虚拟文件系统中讲到了每个进程在打开后,都会默认打开3个文件,如下: stdin     标准输入(键盘)    文件描述符:0 stdout   标准输出(显示器)文件描述符:1 stderr   标准错误                   文件描述符:2 接下来仔细观察下面代码:  解释:先关闭默认打开的标准输出文件,再打开一个文件命名为lo

Java常见数据结构---八大结构

前言: 数据结构是计算机底层存储、组织数据的方式。是指数据相互之间是以什么方式排列在一起的。 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率  常见的八大数据结构:  栈: 思想: 栈是一种数据结构,它遵循后进先出 (LIFO) 原则。这意味着最后添加的元素(称为栈顶元素)将首先被移除。 特点: **简单性和效率:**栈的操作(push、pop、peek)可以

开发内核时怎么设置参数来挂接文件系统

平台介绍: loongson(MIPS)3A平台,bios是pmon 文件系统: 在硬盘上安装了一个fedora系统,当作文件系统使用 情况介绍: 每次编译完内核后,及直接使用加载到板子上run起来,导致最后没有文件系统挂接。文件系统已经安装到硬盘上,就是参数设置的不正确才导致的。 (本身开发板也就是一个台式机的主板,系统启动后挂接好文件系统就是一个主机) 那要怎么设置呢? 每次加载完内核后,