ES6 javascript中class类的get与set用法实例分析


Posted in Javascript onOctober 30, 2017

本文实例讲述了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的程序设计有所帮助。

Javascript 相关文章推荐
javascript实现tabs选项卡切换效果(扩展版)
Mar 19 Javascript
jquery 设置元素相对于另一个元素的top值(实例代码)
Nov 06 Javascript
浅析ES6的八进制与二进制整数字面量
Aug 30 Javascript
js date 格式化
Feb 15 Javascript
js实现简单的选项卡效果
Feb 23 Javascript
Node.js中.pfx后缀文件的处理方法
Mar 10 Javascript
详解Vue爬坑之vuex初识
Jun 14 Javascript
VueJs 搭建Axios接口请求工具
Nov 20 Javascript
深入理解Vue router的部分高级用法
Aug 15 Javascript
微信小程序中使用自定义图标(阿里icon)的方法
Aug 20 Javascript
jQuery无冲突模式详解
Jan 17 jQuery
Vue 实现对quill-editor组件中的工具栏添加title
Aug 03 Javascript
原生JS与jQuery编写简单选项卡
Oct 30 #jQuery
简单实现jQuery弹窗效果
Oct 30 #jQuery
Bootstrap栅格系统的使用详解
Oct 30 #Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
Oct 30 #Javascript
用React实现一个完整的TodoList的示例代码
Oct 30 #Javascript
JavaScript实现精美个性导航栏筋斗云效果
Oct 29 #Javascript
vue中的scope使用详解
Oct 29 #Javascript
You might like
php二维数组排序详解
2013/11/06 PHP
php调整服务器时间的方法
2015/04/03 PHP
Yii框架实现多数据库配置和操作的方法
2017/05/25 PHP
PHP根据key删除数组中指定的元素
2019/02/28 PHP
跟随鼠标旋转的文字
2006/11/30 Javascript
jquery复选框全选/取消示例
2013/12/30 Javascript
浅谈jQuery的offset()方法及示例分享
2015/07/17 Javascript
浅析JS原型继承与类的继承
2016/04/07 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
2016/05/25 Javascript
servlet+jquery实现文件上传进度条示例代码
2017/01/25 Javascript
vue通过watch对input做字数限定的方法
2017/07/13 Javascript
js中document.write和document.writeln的区别
2018/03/11 Javascript
vue+element-ui动态生成多级表头的方法
2018/08/28 Javascript
Bootstrap模态对话框用法简单示例
2018/08/31 Javascript
基于Taro的微信小程序模板消息-获取formId功能模块封装实践
2019/07/15 Javascript
python获取一组汉字拼音首字母的方法
2015/07/01 Python
python利用正则表达式搜索单词示例代码
2017/09/24 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
2018/01/10 Python
python 请求服务器的实现代码(http请求和https请求)
2018/05/25 Python
Pycharm导入Python包,模块的图文教程
2018/06/13 Python
Python实现手写一个类似django的web框架示例
2018/07/20 Python
浅谈pytorch和Numpy的区别以及相互转换方法
2018/07/26 Python
详解Python使用Plotly绘图工具,绘制甘特图
2019/04/02 Python
深入浅析python 中的self和cls的区别
2020/06/20 Python
CSS3实现各种图形的示例代码
2016/10/19 HTML / CSS
哈萨克斯坦最大的时装、鞋子和配饰在线商店:Lamoda.kz
2019/11/19 全球购物
女大学生个人求职信
2013/12/09 职场文书
一份报关员的职业规划范文
2014/01/08 职场文书
党员学习十八大感想
2014/01/17 职场文书
xxx同志考察材料
2014/02/07 职场文书
连带责任保证书
2014/04/29 职场文书
贪污检举信范文
2015/03/02 职场文书
岗位聘任协议书
2015/09/21 职场文书
暑假开始了,你的暑假学习计划写好了吗?
2019/07/04 职场文书
Spring boot应用启动后首次访问很慢的解决方案
2021/06/23 Java/Android
TV动画《史上最强大魔王转生为村民A》番宣CM公布
2022/04/01 日漫