js实例对象读写原型对象成员

在 JavaScript 中,实例对象可以读写原型对象的成员。原型对象是一个对象,用于存储共享的属性和方法,它是通过构造函数创建的实例对象的共享属性和方法的来源。

你可以通过以下几种方式来读写原型对象的成员:

  1. 通过实例对象的__proto__属性来读取原型对象的成员。__proto__属性指向实例对象的原型对象。

    function Person(name) {this.name = name;
    }
    Person.prototype.age = 20;var person = new Person("John");
    console.log(person.__proto__.age); // 输出 20
    

  2. 通过 Object.getPrototypeOf() 方法来获取实例对象的原型对象,并读取原型对象的成员。

    function Person(name) {this.name = name;
    }
    Person.prototype.age = 20;var person = new Person("John");
    var proto = Object.getPrototypeOf(person);
    console.log(proto.age); // 输出 20
    

  3. 直接通过实例对象来访问原型对象的成员。实例对象会首先在自身的属性中查找,如果找不到,就会继续在原型对象中查找。

    function Person(name) {this.name = name;
    }
    Person.prototype.age = 20;var person = new Person("John");
    console.log(person.age); // 输出 20
    

对于写入原型对象的成员,如果实例对象中已经存在同名的属性,则会覆盖原型对象中的成员。如果实例对象中不存在同名的属性,则会在实例对象中创建一个新的属性。

function Person(name) {this.name = name;
}Person.prototype.age = 20;var person = new Person("John");
console.log(person.age); // 输出 20person.age = 25;
console.log(person.age); // 输出 25console.log(Person.prototype.age); // 输出 20

上述代码中,当我们将person.age赋值为25时,实际上是在实例对象中创建了一个名为age的新属性,覆盖了原型对象中的age属性。此时,person.agePerson.prototype.age是不同的值。

总结:

  • 实例对象可以通过 __proto__ 属性、Object.getPrototypeOf() 方法和直接访问属性的方式读取原型对象的成员。
  • 如果实例对象中已经存在同名的属性,写入操作会覆盖原型对象中的成员,如果不存在同名的属性,写入操作会创建一个新的属性。

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

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

相关文章

15、架构-可靠通讯之服务安全

概述 我们已经了解了与具体架构形式无关的业界主流安全概念和技术标准(如TLS、JWT、OAuth 2等概念),在上一章节探讨了与微服务运作特点相适应的零信任安全模型。在本节中,我们将从实践和编码的角度出发,介绍在微服务时…

上证50etf期权的手续费要多少钱?期权懂分享

今天带你了解上证50etf期权的手续费要多少钱?上证50ETF期权的开户一般交易手续费默认为7元一张。在进行期权开户之前,建议提前联系一名券商的客户经理,协商期权手续费优惠事宜。 上证50etf期权的手续费要多少钱? 上证50ETF期权的…

IDEA中SpringMVC的运行环境问题

文章目录 一、IEAD 清理缓存二、用阿里云和spring创建 SpringMVC 项目中 pom.xml 文件的区别 一、IEAD 清理缓存 springMVC 运行时存在一些之前运行过的缓存导致项目不能运行,可以试试清理缓存 二、用阿里云和spring创建 SpringMVC 项目中 pom.xml 文件的区别 以下…

通过LotusScript中的NotesDateTime类来进行时间计算

大家好,才是真的好。 今天我们介绍的是时间日期处理,其实以前也讲过,主要是通过LotusScript中的NotesDateTime类来进行时间计算。 但是这里也存在一个问题:就是时间日期类的比较只能计算出秒,不能计算出毫秒。 毕竟…

python反爬⾍策略应对

应对⽹站的反爬⾍措施通常涉及到⼀系列技术和策略,以模仿正常⽤⼾的⾏为或规避检测机制。 1. 更换⽤⼾代理(User-Agent):很多⽹站会检查HTTP请求的 User-Agent 字段来识别爬⾍。通过更换不同的 User-Agent ,爬⾍可以…

BEV 中 multi-frame fusion 多侦融合(一)

文章目录 参数设置align_dynamic_thing:为了将动态物体的点云数据从上一帧对齐到当前帧流程旋转函数平移公式filter_points_in_ego:筛选出属于特定实例的点get_intermediate_frame_info: 函数用于获取中间帧的信息,包括点云数据、传感器校准信息、自车姿态、边界框及其对应…

电脑怎么录音?分享2种音频录制方法

在日常生活和工作中,我们经常需要录制电脑上的音频,无论是为了记录会议内容、保存网络课程,还是为了制作自己的音频素材,录音功能都显得尤为重要。那么电脑怎么录音?本文将详细介绍2种方法教你如何在电脑上进行录音&am…

Qt做群控系统

群控系统顾名思义,一台设备控制多台机器。首先我们来创造下界面。我们通过QT UI设计界面。设计界面如下: 登录界面: 登录界面分为两种角色,一种是管理员,另一种是超级管理员。两种用户的主界面是不同的。通过选中记住…

MyBatis中的延迟加载与分步查询总结

MyBatis中的延迟加载与分步查询总结 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 1. 延迟加载 延迟加载是MyBatis中的一项重要特性,它允许在需要…

构建专属Web SSH客户端:从零到一打造你的在线运维利器

随着云服务和远程工作的普及,能够随时随地访问服务器变得越来越重要。虽然市面上已有不少成熟的SSH客户端,但打造一个属于自己的Web版SSH工具,不仅能根据个人需求定制功能,还能享受灵活访问的便利。 本文将带你一步步实践&#xf…

PromptMRG: Diagnosis-Driven Prompts for Medical Report Generation

文章汇总 存在的问题 罕见疾病在训练数据中的代表性不足,使其诊断性能不可靠。 解决办法 1:利用预训练的CLIP模型从数据库中检索相似的报告来辅助查询图像的诊断。 2:设计SDL模块根据不同疾病的学习状态自适应调整优化目标。 流程解读 文…

.Net Core WebApi 程序在Swagger API说明文档中不显示注释的解决办法

本次所用版本为 .Net6.0 现象:在Swagger启动后,API接口等不显示注释描述,如下: 在代码中找到调用AddSwaggerGen的地方,如下: builder.Services.AddSwaggerGen(); 修改为: builder.Services.…

【精品方案】数字孪生赋能的智慧园区物联网云平台建设方案

引言:随着信息技术的快速发展,智慧园区建设已成为城市发展的重要趋势。数字孪生技术作为智能制造和智慧城市的核心技术之一,为智慧园区的建设提供了全新的解决方案。本方案旨在通过构建基于数字孪生的物联网云平台,实现智慧园区的…

深圳比创达|EMI电磁干扰行业:从挑战到机遇的蜕变

在当今科技日新月异的时代,电磁干扰(EMI)已成为影响电子设备性能和稳定性的重要因素。EMI电磁干扰行业因此应运而生,致力于研究和解决电磁干扰问题,确保电子设备的正常运行。 一、EMI电磁干扰行业面临的挑战 随着电子…

远程桌面有时连接不上,远程桌面时连接不上的七个处理方法

远程桌面连接作为一种方便、高效的远程管理工具,广泛应用于企业办公、技术支持以及在线教育等多个领域。然而,在实际应用中,用户有时会遇到远程桌面连接不上的情况,这不仅影响了工作效率,还可能导致重要任务的延误。因…

shell函数的定义

shell函数的定义 ​ 定义:将命令序列按照格式写在一起.格式指的是函数的固定格式 ​ 作用:方便重复使用,还可以做成函数库,集中在一起,随时可以传参调用,大的工程分割成小的模块,提高代码的可读性. 函数的格式 vim hanshu1.shfunction shopping {命令序列}shopping () {命令…

基于QT和C++实现的中国象棋

一&#xff0c;源码 board.h #ifndef BOARD_H #define BOARD_H#include <QWidget> #include "Stone.h"class Board : public QWidget {Q_OBJECT public:explicit Board(QWidget *parent 0);bool _bRedTurn; // 红方先走int _currentPlayer; // 当前玩家&…

如何处理跨库查询,以保证数据一致性

如何处理跨库查询&#xff0c;以保证数据一致性&#xff1f; 处理跨库查询以保证数据一致性是一个复杂的问题&#xff0c;通常涉及到分布式数据库系统和事务管理。以下是一些关键步骤和策略&#xff1a; 使用事务: 在多个库之间执行操作时&#xff0c;确保它们作为一个原子单元…

原来设计师都在这些网站找素材、灵感的

设计师可以去哪些网站找设计素材和灵感&#xff0c;收藏好这几个网站&#xff0c;设计必备&#xff0c;提升审美的好帮手。 设计素材网站 1、菜鸟图库 菜鸟图库-免费设计素材下载 菜鸟图库一个可以免费下载设计素材的网站&#xff0c;我推荐过很多次&#xff0c;主要是站内素材…

css 三角形

方法一&#xff1a; <div class"triangle"></div>css .triangle{width: 8px;height: 8px;border: 8px solid #3C69EF;/* border-radius: 0px 2px 0 0; */ // 右上角加一点圆角border-block-end: 8px solid transparent;border-inline-start: 8px solid…