【ES6】Getter和Setter

news/2024/7/10 23:49:33 标签: es6, javascript, 前端

JavaScript中的getter和setter方法可以用于访问和修改对象的属性。这些方法可以通过使用对象字面量或Object.defineProperty()方法来定义。

以下是使用getter和setter方法的示例:

javascript"><!DOCTYPE html>
<script>



const cart = {
    _wheels: 4,
    get wheels(){
        return this._wheels;
    },

    set wheels(value){
        if(value <this._wheels){
            throw new Error("数值太小,too small!!f*cking man !!");
        }
        this._wheels = value;
    }
}



console.log(cart.wheels);

cart.wheels = 10;//设置属性

console.log(cart.wheels);//获取属性

cart.wheels = 1;//设置属性

console.log(cart.wheels);

</script>

输出:
在这里插入图片描述

在上面的示例中,我们使用对象字面量定义了一个名为obj的对象,该对象具有一个名为_value的私有属性。我们还定义了一个名为value的getter和setter方法,该方法允许我们获取和设置_value属性的值。

在访问value属性时,将调用getter方法并返回_value属性的当前值。在修改value属性时,将调用setter方法并将新值存储在_value属性中。

除了使用对象字面量,我们还可以使用Object.defineProperty()方法来定义getter和setter方法。以下是一个示例:

javascript">// 定义一个对象
var obj = {};

// 定义一个属性,并使用getter和setter方法
Object.defineProperty(obj, 'value', {
  get: function() {
    return this._value;
  },
  set: function(newValue) {
    this._value = newValue;
  }
});

// 访问属性值
console.log(obj.value); // 输出 undefined

// 修改属性值
obj.value = 10;
console.log(obj.value); // 输出 10

在这个示例中,我们使用Object.defineProperty()方法定义了一个名为value的属性,并为其提供了getter和setter方法。访问和修改该属性的方式与前面的示例相同。


http://www.niftyadmin.cn/n/4979517.html

相关文章

线上展会可以用在哪些行业?线上展览有哪些优势?

引言&#xff1a; 在数字化时代的浪潮下&#xff0c;线上展会展览正成为企业推广与交流的全新方式。与传统的实地展览相比&#xff0c;线上展会展览不受地域限制&#xff0c;以其独特的优势&#xff0c;吸引着越来越多的企业和参与者。 一、线上展会展览的特点 线上展会展览…

问道管理:市盈率市净率两个指标含义怎么算?

市盈率和市净率是出资领域常用的两个目标&#xff0c;用于评价公司的估值和出资的报答状况。本文将从多个视点剖析这两个目标的含义和计算方法&#xff0c;帮助读者更好地了解和运用它们。首先&#xff0c;市盈率&#xff08;P/E ratio&#xff09;是用来衡量公司股票价格与每股…

J. Med. Chem 2022|TocoDecoy+: 针对机器学习打分函数训练和测试的无隐藏偏差的数据集构建新方法

原文标题&#xff1a;TocoDecoy: A New Approach to Design Unbiased Datasets for Training and Benchmarking Machine-Learning Scoring Functions 论文链接&#xff1a;https://pubs.acs.org/doi/10.1021/acs.jmedchem.2c00460 论文代码&#xff1a;GitHub - 5AGE-zhang/T…

2023年MySQL核心技术面试第一篇

目录 一 . 存储&#xff1a;一个完整的数据存储过程是怎样的&#xff1f; 1.1 数据存储过程 1.1.1 创建MySQl 数据库 1.1.1.1 为什么我们要先创建一个数据库&#xff0c;而不是直接创建数据表&#xff1f; 1.1.1.2基本操作部分 1.2 选择索引问题 二 . 字段&#xff1a;这么多的…

Matlab论文插图绘制模板第109期—特征渲染的标签气泡散点图

在之前的文章中&#xff0c;分享了Matlab标签散点图的绘制模板&#xff1a; 特征渲染的标签散点图&#xff1a; 进一步&#xff0c;再来分享一下特征渲染的标签气泡散点图的绘制模板&#xff0c;从而可以再添加一个维度的信息。 先来看一下成品效果&#xff1a; 特别提示&…

Python 的while循环

while循环&#xff1a; # while 条件: # 条件满足时做的事情 例子&#xff1a; 求1-100的和 i 0 s 0 while i < 100:print("第%d次" % i)i 1 # 循环终止的条件ssiprint("和为%d" % s) 例子2&#xff1a; 猜1-100大小&#xff0c;并给出大小…

kafka复习:(22)一个分区只能被消费者组中的一个消费者消费吗?

默认情况下&#xff0c;一个分区只能被消费者组中的一个消费者消费。但可以自定义PartitionAssignor来打破这个限制。 一、自定义PartitionAssignor. package com.cisdi.dsp.modules.metaAnalysis.rest.kafka2023;import org.apache.kafka.clients.consumer.internals.Abstrac…

誉天HCIE-Datacom丨为什么选择誉天数通HCIE课程学习

大家好&#xff0c;我是誉天HCIE-Datacom的一名学员&#xff0c;在2022年觉得自己技术水平不够&#xff0c;想要提升自己&#xff0c;经朋友介绍在誉天报的名。 听朋友说誉天的阮Sir的课讲的非常好&#xff0c;我在B站上看了几节阮老师的课确实比之前在听得其他机构的课程讲的要…