JavaScirpt基础 之 getter 和 setter

简介: getter 和 setter

JavaScirpt基础 之 getter 和 setter

getter 和 setter

类中我们可以使用 getter 和 setter 来获取和设置值,getter 和 setter 都需要在严格模式下执行。

getter 和 setter 可以使得我们对属性的操作变的很灵活。

类中添加 getter 和 setter 使用的是 get 和 set 关键字。

以下实例为 sitename 属性创建 getter 和 setter:

实例

class Baidu {
  constructor(name) {
    this.sitename = name;
  }
  get s_name() {
    return this.sitename;
  }
  set s_name(x) {
    this.sitename = x;
  }
}
 
let noob = new Baidu("百度");
 
document.getElementById("demo").innerHTML = noob.s_name;

注意:即使 getter 是一个方法,当需要获取属性值时也不要使用括号。

getter/setter 方法的名称不能与属性的名称相同,在本例中属名为 sitename。

很多开发者在属性名称前使用下划线字符 _ 将 getter/setter 与实际属性分开:

以下实例使用下划线 _ 来设置属性,并创建对应的 getter/setter 方法:

实例

class Baidu {
  constructor(name) {
    this._sitename = name;
  }
  get sitename() {
    return this._sitename;
  }
  set sitename(x) {
    this._sitename = x;
  }
}
 
let noob = new Baidu("百度");
 
document.getElementById("demo").innerHTML = noob.sitename;


要使用 setter,请使用与设置属性值时相同的语法,虽然 set 是一个方法,但需要不带括号:

实例

class Baidu {
  constructor(name) {
    this._sitename = name;
  }
  set sitename(x) {
    this._sitename = x;
  }
  get sitename() {
    return this._sitename;
  }
}
 
let noob = new Baidu("百度");
noob.sitename = "Baidu";
document.getElementById("demo").innerHTML = noob.sitename;
目录
相关文章
|
JavaScript 前端开发
Vue的getter和setter方法是干什么的?底层原理是什么?
Vue的getter和setter方法是干什么的?底层原理是什么?
459 0
|
2月前
|
JavaScript API
Vue之数据代理(getter、setter)
Vue之数据代理(getter、setter)
|
5月前
通过getter获取setter函数
通过getter获取setter函数
27 1
|
JavaScript
Vue——02-03计算属性:computed的getter/setter
计算属性:computed的getter/setter
95 0
|
前端开发
前端学习案例16-setter和getter的应用
前端学习案例16-setter和getter的应用
37 0
前端学习案例16-setter和getter的应用
|
JSON 数据格式 网络架构
一个Getter引发的"血案"
一个Getter引发的"血案"
171 0
一个Getter引发的"血案"
|
Swift
懒加载和getter,setter
懒加载和getter,setter
174 0
构造方法的使用之setter优化
构造方法的使用之setter优化
85 0
|
Java
【Groovy】Groovy 方法调用 ( Java 类成员及 setter 和 getter 方法设置 | Groovy 类自动生成成员的 getter 和 setter 方法 )
【Groovy】Groovy 方法调用 ( Java 类成员及 setter 和 getter 方法设置 | Groovy 类自动生成成员的 getter 和 setter 方法 )
493 0
【Groovy】Groovy 方法调用 ( Java 类成员及 setter 和 getter 方法设置 | Groovy 类自动生成成员的 getter 和 setter 方法 )
ES6—46:class中getter和setter的设置方法
ES6—46:class中getter和setter的设置方法
171 0
ES6—46:class中getter和setter的设置方法