本文实例讲述了ES6 javascript中class类的get与set用法。分享给大家供大家参考,具体如下:
与 ES5 一样, 在 Class 内部可以使用get和set关键字, 对某个属性设置存值函数和取值函数, 拦截该属性的存取行为。
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 对象上的。
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的程序设计有所帮助。
react实现一个优雅的图片占位模块组件详解
前言发现项目中的图片占位模块写得很不优雅,找了一圈,发现没找到自己想要的图片组件。于是自己写了一个,写了一个还算优雅的图片组件:mult-tra
React Native 搭建开发环境的方法步骤
本文介绍了ReactNative搭建开发环境,分享给大家,具体如下:准备工作node-v:确认是否安装Node,若已经成功安装了,则执行下面的命令;否则先进行Node
ES6 javascript的异步操作实例详解
本文实例讲述了ES6javascript的异步操作。分享给大家供大家参考,具体如下:异步编程对JavaScript语言太重要。Javascript语言的执行环境是单线程的,如果