JavaScript中set与get方法用法示例

yizhihongxing

一、什么是set方法和get方法

在JavaScript中,set方法和get方法是一种访问对象属性的方式。通常情况下,使用普通的属性访问方式,可以读写对象的属性。但是如果希望对属性进行精细的控制,就需要使用set方法和get方法。

set方法和get方法的作用是:分别用于设置和获取属性的值。在调用set方法时,会将值保存在特殊的临时变量中,而在调用get方法时,则会将该变量的值返回。从而实现了对对象属性的监控和控制。

二、set方法和get方法的用法示例

2.1 示例1:监控属性变化并自动修改

例如,现在有一个Person类,其中包含了name和age两个属性。我们希望在设置age属性时,如果age超出了有效范围的话就自动将其改为合理值(如1-100之间),同时我们希望在读取age属性时,让其自动添加“岁”字。

这时,我们就可以使用set方法和get方法来实现这个需求,具体代码如下:

class Person {
    constructor(name, age) {
        this.name = name;
        this._age = age;   // 将_age属性作为私有属性,避免在set方法中陷入死循环
    }
    set age(value) {
        if (value >= 1 && value <= 100) {
            this._age = value;
        } else {
            console.log('请输入1-100之间的数字');
        }
    }
    get age() {
        return this._age + '岁';
    }
}

let p = new Person('Tom', 18);
console.log(p.age);   // 输出:18岁
p.age = 200;          // 输出:请输入1-100之间的数字
p.age = 30;
console.log(p.age);   // 输出:30岁

从上面的代码可以看出,我们将age属性封装成了一个私有属性_age,然后在设置age属性时,通过set方法对其进行监控和修改。如果age的值超出了有效范围,则输出相应的提示信息。而在读取age属性时,通过get方法自动添加“岁”字。

2.2 示例2:设置只读属性

现在,我们需要实现一个类,该类的实例无法修改某些属性的值。例如,我们创建了一个Person实例,其中的name属性只能读取,不能被修改。这时,我们就可以使用get方法来实现这个需求。

class Person {
    constructor(name, age) {
        this._name = name;
        this._age = age;
    }
    get name() {
        return this._name;
    }
    get age() {
        return this._age;
    }
}

let p = new Person('Tom', 18);
console.log(p.name);   // 输出:Tom
p.name = 'Jerry';      // 不会修改name属性的值

从上述代码中可以看出,我们没有提供set方法,因此外部无法修改name属性的值,只能通过get方法来读取该属性的值。

三、总结

set方法和get方法是JavaScript中一种常用的对象属性访问方式,通过这种方式,我们可以对属性进行精细的控制。在实际开发中,我们可以根据具体需求,使用set方法和get方法来监控和控制对象属性的赋值和读取。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript中set与get方法用法示例 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • Javascript中的包装类型介绍

    当我们在Javascript中使用基本数据类型(如数字、布尔值、字符串)时,这些数据类型会隐式地转换为对应的包装类型(Number、Boolean、String)。这些包装类型使用对象的方式来包装基本类型,使得它们能够像对象一样调用方法和属性。以下是Javascript中的三个包装类型介绍: Number Number对象是数字的包装类型。它们支持许多有用的…

    JavaScript 2023年5月28日
    00
  • 利用vscode调试编译后的js代码详解

    当我们用VSCode开发JavaScript项目时,调试是一项非常重要的操作。但是,如果我们使用第三方库或框架,我们可能需要调试编译后的JavaScript代码。本篇文章将介绍如何在VSCode中调试编译后的JavaScript代码。 利用source maps调试编译后的JavaScript代码 在使用第三方库或框架时,通常需要使用编译工具将源代码编译成J…

    JavaScript 2023年5月27日
    00
  • JS.findElementById()使用介绍

    JS.findElementById()使用介绍 在JavaScript中,document.getElementById()方法允许您通过DOM(Document Object Model)获取HTML元素。该方法将返回具有指定ID的元素。 语法 以下是 document.getElementById() 的语法: document.getElementB…

    JavaScript 2023年6月10日
    00
  • Javascript数组Array基础介绍

    Javascript数组Array基础介绍攻略 什么是Javascript数组? Javascript数组是一种可变长的数据结构,它可以存储任意数量的元素,这些元素可以是任何类型:数字、字符串、布尔值等,甚至是其他数组、对象或函数。Javascript数组是一种非常常用的数据结构,它在各种Javascript应用程序中都扮演着重要的角色。 创建Javascr…

    JavaScript 2023年5月27日
    00
  • Jsoup解析HTML实例及文档方法详解

    Jsoup是什么? Jsoup是一个Java的HTML解析器,可用于从网页中提取和处理数据。 Jsoup常用的文档方法 ① connect方法:建立到指定URL的连接,并返回一个Connection对象 例如: Connection connection = Jsoup.connect("https://www.example.com")…

    JavaScript 2023年6月11日
    00
  • JavaScript实现系统防挂机(无操作弹窗)的示例详解

    下面我来为您详细讲解“JavaScript实现系统防挂机(无操作弹窗)的示例详解”。 什么是系统防挂机? 系统防挂机是指通过一定的技术手段和操作,防止用户长时间不进行操作而导致系统挂起或进程崩溃的现象。常见的方式包括弹出操作提示框或计时器等。 实现无操作弹窗的方法 实现无操作弹窗的方法有很多,下面列举两条示例: 示例一:使用计时器 使用计时器的方法就是在用户…

    JavaScript 2023年6月11日
    00
  • JSP学习心得

    JSP学习心得攻略 JSP(Java Server Pages)是Java EE Web应用程序的基础。当您了解了它的核心概念和编程模型后,您就可以使用JSP构建高效、安全和可维护的Web应用程序。 了解JSP的语法和功能 JSP是一个动态Web页面技术,它通过Java代码和HTML文本产生动态内容。JSP支持以下语法组件: 用<% %>包围的J…

    JavaScript 2023年5月28日
    00
  • javascript实现检验的各种规则

    对于JavaScript实现验证规则的攻略,我们可以有以下步骤: 步骤一:梳理验证规则 首先,我们需要梳理需要验证的规则,例如: 邮箱格式是否正确 手机号格式是否正确 密码是否符合要求 等等 步骤二:编写验证函数 接下来,我们需要编写验证函数来实现验证规则。可以定义一个公共的函数,如 validator(),接收两个参数,一个是需要验证的值,另一个是规则。示…

    JavaScript 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部