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 相关文章推荐
ExtJS 下拉多选框lovcombo
May 19 Javascript
web性能优化之javascript性能调优
Dec 28 Javascript
巧用局部变量提升javascript性能
Feb 24 Javascript
jquery事件绑定解绑机制源码解析
Sep 19 Javascript
微信小程序开发之麦克风动画 帧动画 放大 淡出
Apr 18 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
Jan 31 Javascript
js实现鼠标单击Tab表单切换效果
May 16 Javascript
在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法
Oct 25 Javascript
vue-cli3.0 环境变量与模式配置方法
Nov 08 Javascript
vue2中引用及使用 better-scroll的方法详解
Nov 15 Javascript
详解小程序rich-text对富文本支持方案
Nov 28 Javascript
vue中input的v-model清空操作
Sep 06 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中var_dump方法的使用详解
2013/06/24 PHP
PHP下载远程文件到本地存储的方法
2015/03/24 PHP
PHP计算加权平均数的方法
2015/07/16 PHP
PHP利用百度ai实现文本和图片审核
2019/05/08 PHP
thinkPHP事务操作简单案例分析
2019/10/17 PHP
IE Firefox 使用自定义标签的区别
2009/10/15 Javascript
jQuery对表单元素的取值和赋值操作代码
2011/05/19 Javascript
JavaScript常用全局属性与方法记录积累
2013/07/03 Javascript
原生JavaScript实现动态省市县三级联动下拉框菜单实例代码
2016/02/03 Javascript
jquery 动态增加,减少input表单的简单方法(必看)
2016/10/12 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
2017/10/24 Javascript
基于Vue SEO的四种方案(小结)
2019/07/01 Javascript
vue+canvas实现拼图小游戏
2020/09/18 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
2021/03/02 Javascript
PHP webshell检查工具 python实现代码
2009/09/15 Python
python实现bitmap数据结构详解
2014/02/17 Python
Python序列之list和tuple常用方法以及注意事项
2015/01/09 Python
Python线程详解
2015/06/24 Python
Python中的if、else、elif语句用法简明讲解
2016/03/11 Python
TensorFlow实现模型评估
2018/09/07 Python
Python之inspect模块实现获取加载模块路径的方法
2018/10/16 Python
opencv-python的RGB与BGR互转方式
2020/06/02 Python
python定时截屏实现
2020/11/02 Python
纯css3实现的鼠标悬停动画按钮
2014/12/23 HTML / CSS
HTML5+CSS3实例 :canvas 模拟实现电子彩票刮刮乐代码
2016/12/30 HTML / CSS
HTML5新增form控件和表单属性实例代码详解
2019/05/15 HTML / CSS
伦敦所有西区剧院演出官方票务代理:Theatre Tickets Direct
2017/05/26 全球购物
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
编写类String的构造函数、析构函数和赋值函数
2012/05/29 面试题
介绍一下Ruby的特点
2013/01/20 面试题
出国导师推荐信
2014/01/16 职场文书
投资合作协议书范本
2014/04/17 职场文书
行政专员求职信范文
2014/05/03 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
导游词之黄帝陵景区
2019/09/16 职场文书
小喇叭开始广播了! 四十多年前珍贵老照片
2022/05/09 无线电