JS中的setter、getter数据存取器

news2025/8/8 8:50:33
  1. JS属性可分为两种类型
    ① 数据属性
       只是简单存储了一个值
    ② 存取器属性
       最大的特点是在设置、获取属性值的时候能够做一些其他的操作

  2. 设置存取器属性的两种方式
    ① 直接在对象中设置

    let obj = {
    	count: 5, // 普通的数据属性
    	// index为存取器属性
    	_index: 1,  // _index用来存储index值
    	set index(value) {
    		console.log("可以在设置index值之前,做一些其他的操作");
    		this._index = value;
    		console.log("index值设置完毕");
    		console.log("可以在设置index值之后,做一些其他的操作");
    	},
    	get index() {
    		console.log("可以在获取index值之前,做一些其他的操作");
    		return this._index;
    	}
    }
    

    在这里插入图片描述

    ②对象已存在的情况下,利用Object.defineProperty方法追加存取器属性及特性

    let person = {    // person对象已存在
    	name: 'wuwu',
    	age: 18
    }
    let _sex = 'nv';  // _sex用来存储sex值
    Object.defineProperty(person, 'sex', {
    	// value: _sex,   // 与get方法不能共存,因为获取value值等同于调用get方法
    	// writable: true, // 与set方法不能共存,因为有set方法默认就是可写的
    	enumerable: true, // 是否可遍历
    	configurable: true, // 是否可删除
    	set(value) {
    		console.log("可以在设置index值之前,做一些其他的操作");
    		_sex = value;
    		console.log("index值设置完毕");
    		console.log("可以在设置index值之后,做一些其他的操作");
    	},
    	get() {
    		console.log("可以在获取index值之前,做一些其他的操作");
    		return _sex;
    	}
    });
    

    在这里插入图片描述

3.利用Object.getOwnPropertyDescriptor()方法获取属性的特性

Object.getOwnPropertyDescriptor(person, 'sex');

在这里插入图片描述

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

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

相关文章

Linux系统上搭建Java的运行环境,并且部署JavaWeb程序

Linux系统上搭建Java的运行环境,并且部署JavaWeb程序 1.JDK 基于yum【包管理器】来进行安装即可。 yum list列出应用商店上所有的软件包名字。 yum list | grep jdk验证安装成功!! 2.Tomcat 由于yum商店里的tomcat的版本过低&#xff0…

SpringBoot SpringBoot 原理篇 1 自动配置 1.6 bean 的加载方式【四】

SpringBoot 【黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)】 SpringBoot 原理篇 文章目录SpringBootSpringBoot 原理篇1 自动配置1.6 bean 的加载方式【四】1.6.1 Import1 自动配置 1.6 bean 的加…

正大数据周五新鲜报 做期货要关注哪块消息?

正规的外盘期货公司都是在香港证监会的监管下,持有合法合规金融牌照。这点好比国内证券和期货公司在中国证监会的监管下一个道理,完全正规合法。 ​ ​如果你是想做主账户往下开展业务: 一、进入香港证监会官网查询该期货公司的编号 二、…

Spring 中 Bean 的作用域和生命周期

目录 1. Bean 的作用域 1.1 Bean 的六大作用域 1.1.1 单例作用域 (singleton) 1.1.2 原型作用域 (prototype) 1.1.3 请求作用域 (request) 1.1.4 会话作用于 (session) 1.1.5 全局作用于 (application) 1.1.6 HTTP WebSocket 作用域 (websocket) 1.2 如何设置 Bean 的…

142.如何个性化推荐系统设计-2

142.1 离线训练 离线训练流程 如何线上实时反馈特征? 在线计算,与曝光日志一起上报,离线直接使用 如何解决曝光不足问题? 使用CTR的贝叶斯平滑(CTR 曝光次数 / 点击次数) 所有新闻自身CTR服从Beta分布: 某…

199道SpringCloud面试题,你能答上来吗

前言 Spring Cloud Alibaba 是阿里中间件团队主导的一个新生项目,正处于高速迭代中。 其次,对于中国用户来说,Spring Cloud Alibaba 还有一个非常特殊的意义:它将曾经红极一时的 Dubbo,以及阿里巴巴的强力消息中间件…

每天花2小时复习Java面试指南,高级架构视频,我进了阿里定级P7

Java进阶架构师必备 基础 容器 并发 JVM Java8 计算机网络 计算机操作系统 Linux 数据结构 算法 mysql (优化思路) 系统设计 分布式 线上问题调优(虚拟机,tomcat) 面试指南 工具 ​ 编辑 添加图片注释,不超过 140 字(可选&…

用Python采集球员信息,成功预测到了球赛胜负?

前言 嗨嗨,最近看球赛的朋友多吗 emm怎么说,我对这个虽然兴趣不是很大 但是还是想跟朋友赌赌,自己对这些球员也不是很熟悉,索性叫我的好同事帮我用Python采集了各国球员的一些信息,没料到竟预测成功了! …

2022 谷歌出海创业加速器展示日: 见证入营企业成长收获

经历三个月的沉淀,迎来了展示日的大放异彩。10 家入营企业的路演分享,带来诸多启发 ——企业出海有什么挑战和难点?加入谷歌出海创业加速器,团队有哪些收获?三个月的培训和交流,带来了怎样的感受&#xff1…

Vue中插槽slot

slot插槽(别名:内容分发): 作用: 混合父组件的内容与子组件自己的模板;父组件模板内容在父组件作用域内编译;子组件模板的内容在子组件作用域内编译;扩展组件能力,提高…

VGG16 -19 — CV 中表现最好的 ConvNet 模型

从先进的计算机视觉出现的 Alexnet 开始,人们开始尝试不同的架构。牛津大学工程科学系的 Karen simonyan 和 Andrew Zisserman 在对 ImageNet Challenge 2014 的数据集进行了一些实验后提出了非常深的卷积网络:VERY DEEP CONVOLUTIONAL NETWORKS FOR LAR…

美食杰项目(二)首页

目录前言具体样式代码思路加载样式相应组件相应代码总结:前言 本节给大家讲的是美食杰项目的首页的主要功能和具体样式 具体样式 代码思路 1.点击首页跳转到首页页面 2.在父组件将轮播图所需的图片请求出来,再传给轮播组件 3.在父组件将商品列表的数据…

找不到工作,软件测试真的不香了?

最近总是有人说测试先不要干,测试不好找工作。测试没有以前那么香了? 可是,这是真的么?什么样的人会说这样的话? 肯定不是现在还在岗的人说的,也不是已经拿到企业聘用offer的人说的。 因为他们都是优秀的…

交换机的工作原理以及搭建局域网划分VLAN

作者简介:一名99年软件运维应届毕业生,正在自学云计算课程。宣言:人生就是B(birth)和D(death)之间的C(choise),做好每一个选择。创作不易,动动小手…

OneAuth 2022.11.23版本更新内容

2022.11.23版本更新内容: 新增IdP飞书 云目录增加对Group的支持GWA浏览器插件适配性优化自定义授权服务器优化,适应RBAC、ABAC等多种场景授权IdP 北森优化,适配自定义的属性租户的部分试用功能需要联系后台开通其他一些Bug的修复 标题新增 …

GIT

X.1 git上线后同步分支代码 上线后合并远端开发分支到远端master: 本地分支提交到远端分支,git上远端分账合并请求到远端master 上线后合并远端master到远端开发分支: 同步远端master到本地master,将本地master合并到本地开发分…

DM8级联异步备库搭建及故障模拟将异步切换为实时同步

目录 一、 搭建前准备 二、 主库配置 2.1 dmini配置 2.2 dmmal.ini配置 2.3 dmarch.ini配置 2.4 dmwatcher.ini配置 2.5 dmtimer.ini配置 三、 异步备库配置 3.1 dm.ini配置 3.2 dmmal.ini配置 3.3 dmarch.ini配置 3.4 dmwatcher.ini配置 3.5 dmtimer.ini配置 四、…

【计算机网络】HTTP/HTTPS协议基础知识汇总

目录 1.URL: 2.HTTP协议: 2.1抓包工具(这里用fiddler): 2.2请求和响应的格式: 2.3方法的介绍: 2.4请求报头(header): 2.5状态码: 2.6响应…

格式化DataFrame中的时间数据DataFrame.to_datetime()方法

小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 格式化DataFrame中的时间数据 DataFrame.to_datetime()方法 选择题 关于以下python代码说法错误的一项是? import pandas as pd data {"Date": [2022/12/01,2022/12/02]} df pd…

SQL Server如何获取GUID号

select newid() guid;--获取GUID select replace(newid(),-,) guid;--获取GUID 去掉- sqlserver newid()函数 NEWID (Transact-SQL) - SQL Server | Microsoft LearnNEWID (Transact-SQL)https://learn.microsoft.com/en-us/sql/t-sql/functions/newid-transact-sql?redirect…