JavaScript中set与get方法用法示例

一、什么是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 代码不能被阻断是指,无论代码执行的过程中是否发生运行时错误,代码都不能停止或崩溃。这在编写稳定、高效的 JavaScript 应用程序时非常重要。为了实现 JavaScript 代码不能被阻断的稳定性建设,以下是一些建议和示例。 1. 异常处理 在 JavaScript 中,处理异常是非常重要的。如果存在未处理的异常,它将导致程序终止并…

    JavaScript 2023年5月18日
    00
  • javascript 注释代码的几种方法总结

    JavaScript 注释代码是为了在代码中加入一些标注或解释,方便程序员或其他人员阅读代码。注释代码在开发过程中起到了非常重要的作用。本文将详细讲解 JavaScript 注释代码的几种方法总结。 单行注释 使用单行注释的方法在注释行前加上双斜杠 “//”。单行注释只会注释单独一行代码。例如: var name = "张三"; // 定…

    JavaScript 2023年5月27日
    00
  • javascript常用功能汇总

    JavaScript常用功能汇总 JavaScript (简写为JS) 是一种轻量级的编程语言。它是Web前端开发的三大基石之一(HTML、CSS、JavaScript)。本文将介绍一些常用的JavaScript功能,包括字符串操作、数组操作、函数定义等。 字符串处理 JavaScript中的字符串是用单引号或双引号括起来的文本。常用的字符串操作包括:查找子…

    JavaScript 2023年5月18日
    00
  • js中的时间转换—毫秒转换成日期时间的示例代码

    下面是“js中的时间转换—毫秒转换成日期时间”的完整攻略。 原理 在Javascript中,可以通过 Date 对象来进行时间的转换,其中 Date 对象提供了一些方法用于获取和设置时间。其中,我们可以通过 getTime() 方法来获取当前时间对应的毫秒数,然后再通过 new Date() 方法将其转化为日期时间。 示例代码 下面是将毫秒数转换为日期时间的…

    JavaScript 2023年5月27日
    00
  • 也说JavaScript中String类的replace函数

    请允许我详细讲解“也说JavaScript中String类的replace函数”的完整攻略。 了解replace函数 首先,我们需要了解一下JavaScript中,String类的replace函数是什么。 replace函数是一个用于替换字符串的工具函数,它的用法如下: str.replace(regexp|substr, newSubStr|functi…

    JavaScript 2023年5月28日
    00
  • js parentElement和offsetParent之间的区别

    js parentElement和offsetParent之间的区别 在使用 JavaScript 操作 DOM(文档对象模型)时,我们经常会遇到 parentElement 和 offsetParent 这两个属性,这两个属性都可以用来访问一个元素的父级元素。虽然它们看起来很相似,但它们有着不同的工作方式和用途。 parentElement parentE…

    JavaScript 2023年6月10日
    00
  • JS实现躲避粒子小游戏

    JS实现躲避粒子小游戏的完整攻略可以分为以下几个步骤: 设计游戏画面和规则首先,需要设计出游戏的画面和规则。例如,游戏中应该有一个主角(比如小球),还应该有多个敌人(比如其他小球),主角需要躲避敌人并尽可能多地存活下来。游戏可以通过计算主角与敌人的距离来判断是否碰撞,同时也可以设置主角的生命值,当生命值为0时游戏结束。 编写HTML和CSS其次,需要按照游戏…

    JavaScript 2023年6月10日
    00
  • js构造函数创建对象是否加new问题

    当使用 JavaScript 构造函数创建对象时,可以选择是否使用 new 关键字。如果使用了 new 关键字,则会创建一个新的对象并将其绑定到 this 上,最后返回这个新的对象。如果没有使用 new 关键字,则 this 被绑定到全局对象上,这可能导致一些意外的问题。 下面给出两个示例展示使用和不使用 new 关键字的区别。 示例一 function P…

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