JavaScript:Object对象的属性方法

Object.defineProperty()方法:

Object.defineProperty()方法---为对象添加属性---Vue的源码中经常用到

// 1 Object.defineProperty()方法---为对象添加属性---Vue的源码中经常用到const person = {firstName: '呼呼',lastName: '憨憨'}// // 为某个对象添加一个属性,并对该属性进行一些配置操作Object.defineProperty(person, 'fullName', {configurable: false, //默认是不能被删除false(属性相关的操作)enumerable: true, //默认是false,能否被枚举遍历//value:'自己填写默认值' //默认值//writable.false, //默认是false,能否被修改--重写// 获取(读取),外部在获取fullName这个属性的时候,会进入到这个get方法get() {return this.firstName + '_' + this.lastName},// 设置(写入),外部在为fullName这个属性赋值的时候,会进入到这个set方法set(val) {const names = val.split('_') //根据_下划线拆分数组this.firstName = names[0] //拆分为--呼呼this.lastName = names[1] //拆分为-- 憨憨}})当前对象中添加了一个属性person.fullName = person.firstName + '_' + person.lastNameconsole.log(person.fullName) //打印出-->呼呼_憨憨person.fullName = '上官_婉儿'console.log(person.firstName, person.lastName) // 打印出---> 上官 婉儿person.firstName = '西门'person.lastName = '大郎'console.log(person.fullName)//打印出--> 西门_大郎

2.Object.create()

// 2 Object.create()// 姓氏 和 名字 -----> 姓名 ,任意一个变化,其他的也应该自动的变化function Person() { }Person.prototype.sayHi = function () {console.log('hello baby')}//function Student() { }Student的原型指向改变了,指向了 Person的实例对象const per = new Person()Student.prototype = per实例化Studentconst stu = new Student()stu.sayHi() // 打印--hello baby'console.log(Student.prototype === per) //打印 trueconsole.log(stu.__proto__ === Student.prototype) //打印 true// // stu的隐式原型指向了per实例对象console.log(stu.__proto__ === per) //打印 true------------ //Object.create()--------const person = {name: '小明',eat: function () {console.log('小明最有名的童鞋')}}设置stu对象的隐式原型指向了person对象const stu = Object.create(person)console.log(stu.name) // 打印----小明stu.eat() //打印---小明最有名的童鞋console.log(stu.__proto__ === person) //true

3. Object.keys()方法:

Object.keys()方法,获取某个对象中所有的键

const person = {name: '小明',eat: function () {console.log('小明最有名的童鞋')}}4. Object.keys()方法,获取某个对象中所有的键person对象中所有的属性let keys = Object.keys(person)console.log(keys)

4: 对象.hasOwnProperty()方法

对象.hasOwnProperty()方法,用来判断当前对象中是否有这个属性

const person = {name: '小明',eat: function () {console.log('小明最有名的童鞋')}}5.对象.hasOwnProperty()方法,用来判断当前对象中是否有这个属性console.log(person.hasOwnProperty('firstName')) //console.log(person.hasOwnProperty('tostring'))  没有toString这个属性可以调用,没有报错,因为原型指向中有这个方法,是继承过来的,所以可以使用console.log(person.toString())console.dir(person)

欢迎关注我的原创文章:小伙伴们!我是一名热衷于前端开发的作者,致力于分享我的知识和经验,帮助其他学习前端的小伙伴们。在我的文章中,你将会找到大量关于前端开发的精彩内容。

学习前端技术是现代互联网时代中非常重要的一项技能。无论你是想成为一名专业的前端工程师,还是仅仅对前端开发感兴趣,我的文章将能为你提供宝贵的指导和知识。

在我的文章中,你将会学到如何使用HTML、CSS和JavaScript创建精美的网页。我将深入讲解每个语言的基础知识,并提供一些实用技巧和最佳实践。无论你是初学者还是有一定经验的开发者,我的文章都能够满足你的学习需求。

此外,我还会分享一些关于前端开发的最新动态和行业趋势。互联网技术在不断发展,新的框架和工具层出不穷。通过我的文章,你将会了解到最新的前端技术趋势,并了解如何应对这些变化。

我深知学习前端不易,因此我将尽力以简洁明了的方式解释复杂的概念,并提供一些易于理解的实例和案例。我希望我的文章能够帮助你更快地理解前端开发,并提升你的技能。

如果你想了解更多关于前端开发的内容,不妨关注我的原创文章。我会不定期更新,为你带来最新的前端技术和知识。感谢你的关注和支持,我们一起探讨交流技术共同进步,期待与你一同探索前端开发的奇妙世界!

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

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

相关文章

模板方法模式:定义算法骨架的设计策略

在软件开发中,模板方法模式是一种行为型设计模式,它在父类中定义一个操作的算法框架,允许子类在不改变算法结构的情况下重定义算法的某些步骤。这种模式是基于继承的基本原则,通过抽象类达到代码复用的目的。本文将详细介绍模板方…

NASA数据集——亚洲夏季季风化学与气候影响项目超高灵敏度气溶胶光谱(UHSAS)数据

ACCLIP_Aerosol_AircraftInSitu_WB57_Data 简介 ACCLIP_Aerosol_AircraftInSitu_WB57_Data 是亚洲夏季季风化学与气候影响项目(ACCLIP)期间收集的原地气溶胶数据。本数据集收录了来自下一代激光质谱仪(PALMS-NG)、单颗粒烟尘光度…

一文读懂Partisia Blockchain,被严重低估的隐私区块链生态

在今年 3 月,隐私公链 Partisia Blockchain 迎来了重要的进展,该生态通证 $MPC 上线了交易所,目前 $MPC 通证可以在 Kucoin、Gate、BitMart、Bitfinex、Bitture 等平台交易,并将在不久后上线 MEXC 平台。 ​ 在上个月上线市场至今…

AIGC时代 可演进的私有云将蔚然成风

随着AIGC(人工智能、大数据、云计算、物联网等技术的融合应用)时代的来临,企业面临着前所未有的机遇与挑战。在这一时代背景下,IT基础设施如何平衡新旧资源、如何拥抱新技术应用,成为了企业信息化建设的核心议题。而私…

vim快捷指令

Vim是一款强大的文本编辑器,它提供了许多快捷指令来提高编辑效率。以下是一些常用的Vim快捷指令: 移动光标: h 向左移动一个字符j 向下移动一行k 向上移动一行l 向右移动一个字符w 跳到下一个单词的开头b 跳到前一个单词的开头e 跳到当前单词…

SpringBoot项目快速打印controller类的URL

创建一个配置类,实现WebMvcConfigurer接口,并重写addInterceptors方法来注册一个自定义的RequestMappingHandlerMapping。 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configurati…

华为OD-C卷-小明找位置[100分]

题目描述 小朋友出操,按学号从小到大排成一列; 小明来迟了,请你给小明出个主意,让他尽快找到他应该排的位置。 算法复杂度:不高于 nlog(n); 学号为整数类型,队列规模 ≤ 10000; 输入描述 第一行:输入已排成队列的小朋友的学号(正整数),以空格隔开;例如: 93 9…

springboot项目关闭swagger防止漏洞扫描

为了应对安全扫描,再生产环境下关闭swagger ui 1、项目中关闭swagger 在这里用的是config配置文件的方式关闭的 Configuration EnableSwagger2 public class SwaggerConfig implements WebMvcConfigurer {Value("${swagger.enable}")private Boolean e…

【项目实战】记录一次PG数据库迁移至GaussDB测试(上)

目录 一、说明 1.1、参考文档 1.2、注意事项 1.3、环境基本情况 二、GaussDB新环境安装 2.1 配置操作环境变量 2.1.1 关闭防火墙 步骤1 执行以下命令,检查防火墙是否关闭。 步骤2 执行以下命令,关闭防火墙并禁止开机启动。 步骤3 修改/etc/sel…

Django序列化常用字段与参数

Django序列化常用字段与参数 目录 Django序列化常用字段与参数序列化常见字段序列化常见参数 序列化常见字段 字段含义字段构造方式BooleanField布尔值判断(True/False)BooleanField()NullBooleanField布尔值判断(可以为Null)NullBooleanField()CharField文本字符串CharField(…

MySQL 中datatime 与 timestamp区别

在 MySQL 中,DATETIME 和 TIMESTAMP 是两种用于存储日期和时间的数据类型,它们有以下区别: 存储范围: DATETIME:存储的日期和时间范围从 ‘1000-01-01 00:00:00’ 到 ‘9999-12-31 23:59:59’。TIMESTAMP:存…

单细胞RNA测序(scRNA-seq)Cellranger流程入门和数据质控

单细胞RNA测序(scRNA-seq)Cellranger流程入门和数据质控 单细胞RNA测序(scRNA-seq)基础知识可查看以下文章: 单细胞RNA测序(scRNA-seq)工作流程入门 单细胞RNA测序(scRNA-seq)细胞分离与扩增 1. 单细胞RNA-seq样本数据说明 样本数据来源文章:Acquired cancer re…

【计算机毕业设计】基于微信小程序的开发项目150套(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 🧡今天给大家分享200的微信小程序毕业设计,后台用Java开发,这些项目都经过精心挑选,涵盖了不同的实战主题和用例,可做毕业设…

1.点亮第一个LED

#include "reg52.h" sbit LED1P2^0; //将P2.0管脚定义为LED1void main() { LED10; //LED1端口设置为低电平 while(1) { } } 接线说明 为了使LED灯能够正常工作,需要将其正确地连接到单片机的某个输出端口。在这…

【运维笔记】负载均衡的原理与算法——以Nginx为例

一、负载均衡的定义及其重要性 负载均衡是一种广泛应用于数据中心和云计算环境的技术,它能够将工作负载均匀地分配到服务器集群中的多个服务器上。这一技术的核心目的是优化资源利用率,提高服务可靠性,降低响应时间,从而保障网络…

linux c多进程通信之共享内存和信号量

编译环境:Ubuntu16.04 64位 交叉编译工具:arm-hisiv500-linux-gcc 文章目录 1. 项目背景2. 涉及的函数3. 头文件JShm.h4. 类的实现5. sample代码 1. 项目背景 最近项目中需要用到共享内存的交互,取走旧数据,取数据不及时写入覆盖…

MQ概览及Kafka详解

文章目录 概览MQ优点MQ缺点常见MQ对比JMS消息模型点对点模式发布订阅模式 kafka基础架构发布订阅工作流程生产者生产者文件存储生产者分区策略生产者数据可靠性保证生产者数据一致性保证生产者ack机制ExactlyOnce生产者发送消息流程 消费者消费者分区分配策略消费者消费数据问题…

算法设计与分析实验报告c++实现(TSP问题、哈夫曼编码问题、顾客安排问题、最小生成树问题、图着色问题)

一、实验目的 1.加深学生对贪心算法设计方法的基本思想、基本步骤、基本方法的理解与掌握; 2.提高学生利用课堂所学知识解决实际问题的能力; 3.提高学生综合应用所学知识解决实际问题的能力。 二、实验任务 用贪心算…

streamlit 大模型前段界面

结合 langchain 一起使用的工具,可以显示 web 界面 pip install streamlit duckduckgo-search 运行命令 streamlit run D:\Python_project\NLP\大模型学习\test.py import os from dotenv import load_dotenv from langchain_community.llms import Tongyi load…

基于springboot的大学城水电管理系统源码数据库

基于springboot的大学城水电管理系统源码数据库 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了大学城水电管理系统的开发全过程。通过分析大学城水电管理系统管理的不足,创建了一个计算机管理大学城水…