当前位置:首页 > JavaScript

js实现getter

2026-03-13 22:42:49JavaScript

在 JavaScript 中实现 Getter

Getter 是对象属性的一种特殊方法,用于动态计算并返回属性值。通过 get 关键字定义,可以隐藏复杂的逻辑,让属性访问更直观。

js实现getter

基本语法

在对象字面量或类中使用 get 定义 Getter:

js实现getter

const obj = {
  get propertyName() {
    return computedValue;
  }
};

对象字面量示例

const user = {
  firstName: 'John',
  lastName: 'Doe',
  get fullName() {
    return `${this.firstName} ${this.lastName}`;
  }
};

console.log(user.fullName); // 输出 "John Doe"

类中使用 Getter

class User {
  constructor(firstName, lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
  }

  get fullName() {
    return `${this.firstName} ${this.lastName}`;
  }
}

const user = new User('Jane', 'Smith');
console.log(user.fullName); // 输出 "Jane Smith"

计算属性动态命名

结合方括号语法实现动态属性名:

const dynamicProp = 'status';
const obj = {
  get [dynamicProp]() {
    return 'active';
  }
};

console.log(obj.status); // 输出 "active"

与 Setter 配合使用

通常 Getter 会与 Setter 配对实现完整属性控制:

const temperature = {
  _celsius: 0,
  get fahrenheit() {
    return this._celsius * 1.8 + 32;
  },
  set fahrenheit(value) {
    this._celsius = (value - 32) / 1.8;
  }
};

temperature.fahrenheit = 77;
console.log(temperature._celsius); // 输出 25

注意事项

  • Getter 不能接受参数
  • 避免在 Getter 中进行耗时操作
  • 属性会被枚举(可通过 Object.defineProperty 设置 enumerable: false

标签: jsgetter
分享给朋友:

相关文章

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。 &…