一、什么是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技术站