ES6 JavaScript Class中get与set属性的用法详解
本文详解ES6 Class中get和set关键字的用法。通过实例展示如何定义存值函数和取值函数以拦截属性存取行为,并分析其作用于属性描述符对象的机制,帮助开发者掌握自定义属性读取与赋值逻辑。
ES6 Class get与set基本用法
本文通过具体实例,解析ES6 JavaScript中Class类的get与set关键字的应用方法,供读者参考学习。
与ES5标准一致,在Class定义内部可以使用get和set关键字,分别为特定属性配置存值函数(setter)和取值函数(getter),从而拦截并自定义该属性的读取与赋值行为。
属性存取器实例演示
class MyClass {
constructor() {
// ...
}
get prop() {
return 'getter';
}
set prop(value) {
console.log('setter: ' + value);
}
}
let inst = new MyClass();
inst.prop = 123;
// setter: 123
inst.prop
// 'getter'
在上述代码示例中,prop属性关联了自定义的存值与取值逻辑,因此对该属性进行赋值或读取时,执行的是自定义的行为而非默认操作。
这些存值函数和取值函数实际上是定义在对应属性的描述符(descriptor)对象上的。
描述符对象中的get/set定义
class CustomHTMLElement {
constructor(element) {
this.element = element;
}
get html() {
return this.element.innerHTML;
}
set html(value) {
this.element.innerHTML = value;
}
}
var descriptor = Object.getOwnPropertyDescriptor(
CustomHTMLElement.prototype, "html");
"get" in descriptor // true
"set" in descriptor // true
如前文代码所示,存值与取值函数被定义在HTML属性的描述对象中,这一机制与ES5的实现方式完全保持一致。
如需了解更多相关知识,可查阅本站的《ECMAScript6(ES6)入门教程》、《JavaScript数组操作技巧总结》、《JavaScript字符与字符串操作技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript错误与调试技巧总结》以及《javascript面向对象入门教程》等专题内容。
希望本文关于ECMAScript程序设计的内容能对大家有所帮助。
JS动态构建复杂嵌套JSON对象的方法
2026-11-05 15:41:52
JS负数取余为什么是负数?详解余数与模运算区别
2026-11-05 13:34:41
JS 解压出现乱码或报错怎么解决?
2026-11-05 12:32:38
JS 中 startsWith、indexOf 与正则判断字符串前缀的对比
2026-11-04 22:19:43
JS解析Excel后怎么将数据转换为JSON格式
2026-11-04 20:58:28
