当前位置:首页 > JavaScript

js实现getter

2026-04-05 16:55:58JavaScript

实现Getter的基本方法

在JavaScript中,Getter可以通过对象字面量或Object.defineProperty方法实现。对象字面量方式简洁,适合简单场景;Object.defineProperty更灵活,支持配置属性特性。

使用对象字面量定义Getter:

const obj = {
  _value: 42,
  get value() {
    return this._value;
  }
};
console.log(obj.value); // 输出42

使用Object.defineProperty定义Getter:

const obj = { _value: 42 };
Object.defineProperty(obj, 'value', {
  get: function() {
    return this._value;
  }
});
console.log(obj.value); // 输出42

在类中使用Getter

ES6类语法支持直接在类定义中使用Getter,适用于面向对象编程场景:

class MyClass {
  constructor() {
    this._value = 42;
  }

  get value() {
    return this._value;
  }
}

const instance = new MyClass();
console.log(instance.value); // 输出42

Getter与Setter结合使用

Getter常与Setter配对使用,实现对私有变量的受控访问:

const obj = {
  _value: 0,
  get value() {
    return this._value;
  },
  set value(newVal) {
    if (newVal >= 0) {
      this._value = newVal;
    }
  }
};

obj.value = 10;
console.log(obj.value); // 输出10
obj.value = -5; // 赋值无效
console.log(obj.value); // 仍输出10

计算属性Getter

Getter可以返回动态计算的值,而非简单返回存储值:

const circle = {
  radius: 5,
  get diameter() {
    return this.radius * 2;
  },
  get area() {
    return Math.PI * this.radius  2;
  }
};

console.log(circle.diameter); // 输出10
console.log(circle.area); // 输出约78.54

使用Proxy实现高级Getter

Proxy对象可以创建更灵活的Getter行为,包括处理不存在的属性:

js实现getter

const target = { _secret: 123 };
const handler = {
  get: function(obj, prop) {
    return prop in obj ? obj[prop] : `Property ${prop} not found`;
  }
};
const proxy = new Proxy(target, handler);

console.log(proxy._secret); // 输出123
console.logproxy.nonExistent); // 输出"Property nonExistent not found"

标签: jsgetter
分享给朋友:

相关文章

css3结合js制作

css3结合js制作

CSS3 结合 JavaScript 制作动态效果 CSS3 和 JavaScript 结合可以实现丰富的动态效果,包括动画、交互和响应式设计。以下是几种常见的实现方式: CSS3 动画与 Java…

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js 实现跳转

js 实现跳转

使用 window.location.href 进行跳转 通过修改 window.location.href 可以跳转到指定 URL,浏览器会加载新页面: window.location.hre…

js实现下拉刷新

js实现下拉刷新

监听触摸事件 通过监听 touchstart、touchmove 和 touchend 事件来检测用户下拉手势。记录触摸起始位置和移动距离。 let startY = 0; let curr…

js实现显示隐藏

js实现显示隐藏

显示隐藏的实现方法 在JavaScript中,实现元素的显示和隐藏可以通过多种方式完成。以下是几种常见的方法: 修改CSS的display属性 通过改变元素的display属性可以在none(隐藏)…

js 实现递归

js 实现递归

递归的基本概念 递归是指函数直接或间接调用自身的过程。在JavaScript中,递归通常用于解决可以分解为相似子问题的问题,如阶乘、斐波那契数列、树形结构遍历等。 递归的实现要点 基线条件(Base…